diff --git a/BACnet-stack.doxyfile b/BACnet-stack.doxyfile index 402ad0fb..c3adf0e5 100644 --- a/BACnet-stack.doxyfile +++ b/BACnet-stack.doxyfile @@ -14,204 +14,204 @@ # Project related configuration options #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = BAC-stack -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.5.9-prelim -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc/output -# 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 option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would +# 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 option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = 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. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, +# 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. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, +# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, +# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # and Ukrainian. OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) 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. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = +STRIP_FROM_PATH = -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO -# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" 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:". +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" 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. -ALIASES = +ALIASES = -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO @@ -221,33 +221,33 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO @@ -256,356 +256,356 @@ TYPEDEF_HIDES_STRUCT = NO # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES -# If the EXTRACT_STATIC tag is set to YES all static members of a file +# If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. 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 (the default) these classes will be included in the various +# 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 (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the +# Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST = YES -# The ENABLED_SECTIONS tag can be used to enable conditional +# The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. -ENABLED_SECTIONS = +ENABLED_SECTIONS = -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- -# The QUIET tag can be used to turn on/off the messages that are generated +# The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES -# If WARN_IF_DOC_ERROR 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 +# If WARN_IF_DOC_ERROR 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. WARN_IF_DOC_ERROR = YES -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated 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) WARN_FORMAT = "$file:$line: $text" -# 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 +# 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 stderr. -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = include src ports/linux demo/handler demo/object demo/server demo/epics demo/gateway +INPUT = include src ports/linux demo/handler demo/object demo/server demo/epics demo/gateway -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 -FILE_PATTERNS = +FILE_PATTERNS = -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = +EXCLUDE = -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (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, +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (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 -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = +EXAMPLE_PATH = -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left # blank all files are included. -EXAMPLE_PATTERNS = +EXAMPLE_PATTERNS = -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = +IMAGE_PATH = -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. -INPUT_FILTER = +INPUT_FILTER = -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. -FILTER_PATTERNS = +FILTER_PATTERNS = -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO @@ -614,32 +614,32 @@ FILTER_SOURCE_FILES = NO # configuration options related to source browsing #--------------------------------------------------------------------------- -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO -# Setting the INLINE_SOURCES tag to YES will include the body +# Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO @@ -651,16 +651,16 @@ REFERENCES_RELATION = NO REFERENCES_LINK_SOURCE = YES -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES @@ -669,166 +669,166 @@ VERBATIM_HEADERS = YES # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 -# 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 one or more prefixes that +# 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 one or more prefixes that # should be ignored while generating the index headers. -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = doc/bac_stack_header.html -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = doc/bac_stack_footer.html -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! -HTML_STYLESHEET = +HTML_STYLESHEET = -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = YES -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. GENERATE_DOCSET = NO -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# 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. DOCSET_FEEDNAME = "Doxygen generated docs" -# When GENERATE_DOCSET tag is set to YES, 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 +# When GENERATE_DOCSET tag is set to YES, 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. DOCSET_BUNDLE_ID = org.doxygen.Project -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = BAC-stack.chm -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. -HHC_LOCATION = +HHC_LOCATION = -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO -# The TOC_EXPAND flag can be set to YES to add extra items for group members +# The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO -# This tag can be used to set the number of enum values (range [1..20]) +# This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 @@ -837,74 +837,74 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. -EXTRA_PACKAGES = +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 +# 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. Notice: only use this tag if you know what you are doing! -LATEX_HEADER = +LATEX_HEADER = -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. 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. +# 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. LATEX_BATCHMODE = NO -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO @@ -913,68 +913,68 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = YES -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. -RTF_STYLESHEET_FILE = +RTF_STYLESHEET_FILE = -# Set optional variables used in the generation of an rtf document. +# Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. -RTF_EXTENSIONS_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man -# The MAN_EXTENSION tag determines the extension that is added to +# The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO @@ -983,33 +983,33 @@ MAN_LINKS = NO # configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the # syntax of the XML files. -XML_SCHEMA = +XML_SCHEMA = -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the # syntax of the XML files. -XML_DTD = +XML_DTD = -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES @@ -1018,10 +1018,10 @@ XML_PROGRAMLISTING = YES # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO @@ -1030,320 +1030,320 @@ GENERATE_AUTOGEN_DEF = NO # configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. 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 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. -INCLUDE_PATH = +INCLUDE_PATH = -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. -INCLUDE_FILE_PATTERNS = +INCLUDE_FILE_PATTERNS = -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator # instead of the = operator. -PREDEFINED = FOR_DOXYGEN BAC_ROUTING +PREDEFINED = FOR_DOXYGEN BAC_ROUTING -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. -EXPAND_AS_DEFINED = +EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen +# If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. -GENERATE_TAGFILE = +GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes # will be listed. 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 +# 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 listed. EXTERNAL_GROUPS = YES -# The PERL_PATH should be the absolute path and name of the perl script +# The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = NO -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +MSCGEN_PATH = -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented +# 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. 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, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# 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, 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) HAVE_DOT = YES -# If the CLASS_GRAPH and HAVE_DOT tags are 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 +# If the CLASS_GRAPH and HAVE_DOT tags are 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 # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = NO -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and +# If the COLLABORATION_GRAPH and HAVE_DOT tags are 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. COLLABORATION_GRAPH = NO -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO -# If set to YES, the inheritance and collaboration graphs will show the +# If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# 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 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# 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. INCLUDE_GRAPH = YES -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = NO -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are 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. DIRECTORY_GRAPH = YES -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png -# The tag DOT_PATH can be used to specify the path where the dot tool can be +# The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. -DOT_PATH = +DOT_PATH = -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the # \dotfile command). -DOTFILE_DIRS = +DOTFILE_DIRS = -# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is enabled by default, which results in a transparent -# background. 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 +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is enabled by default, which results in a transparent +# background. 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). DOT_TRANSPARENT = YES -# Set the DOT_MULTI_TARGETS tag to YES 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) +# Set the DOT_MULTI_TARGETS tag to YES 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 this, this feature is disabled by default. DOT_MULTI_TARGETS = YES -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- -# The SEARCHENGINE tag specifies whether or not a search engine should be +# The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO diff --git a/CHANGELOG.md b/CHANGELOG.md index 64b51b28..f1b15f27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,7 +58,7 @@ The git repositories are hosted at the following sites: ### Changed * Changed MS/TP master node self destination checks to be - located in receive FSM. Changed MSTP zero configuration: modified + located in receive FSM. Changed MSTP zero configuration: modified comments for state transition names; modified next station increment; refactored the UUID rand() to not be required by common zero config implementation; added more unit tests. (#676) @@ -75,7 +75,7 @@ The git repositories are hosted at the following sites: Fixed Binary input/value set. (#672) * Fixed wildcard check in create object for Binary Input objects. (#663) * Fixed memory leaks in create object initialization if repeated. (#664)(#662) -* Fixed the Zephyr-OS BIP6 datalink module. (#659) +* Fixed the Zephyr-OS BIP6 datalink module. (#659) * Fixed redundant GCC compiler flags in ARM, OS, and test builds, and made them more consistent across various builds. (#658) * Fixed redundant redeclaration of various functions detected by change @@ -147,11 +147,11 @@ The git repositories are hosted at the following sites: which datatypes can be written. (#620) * Changed format in CMake to enable cleaner SC merge. (#620) * Changed the first instance of a basic integer value object from 1 to 0. (#619) -* Changed basic time-value object present-value to be decoupled from +* Changed basic time-value object present-value to be decoupled from current time, and changed out-of-service property to be writable. ### Fixed - + * Fixed nuisance print messages in ports/linux/dlmstp by changing to debug print only. (#633) * Fixed compile warnings in basic objects. (#630) @@ -196,7 +196,7 @@ current time, and changed out-of-service property to be writable. * Changed property lists member function for WriteProperty default case by refactoring.(#609) -* Changed time-value object unit testing by refactoring.(#609) +* Changed time-value object unit testing by refactoring.(#609) * Changed ports/zephry for BACnet/IP and date-time with latest Zephyr OS.(#606) * Changed Zephyr OS west manifest to target zephyr v3.6.0.(#601) @@ -204,7 +204,7 @@ current time, and changed out-of-service property to be writable. * Changed position of bacnet/bacdef.h to be the first bacnet header to include. BACnet headers need to pull in optional configuration and optional ecosystem overrides to allow integrators to control - builds. This change places bacnet/bacdef.h to the top of the BACnet + builds. This change places bacnet/bacdef.h to the top of the BACnet Stack header files to consistently introduce integrator and ports header files.(#598)(#600) * Added dependent BACnet stack headers into bacdef.h file.(#602) @@ -267,7 +267,7 @@ current time, and changed out-of-service property to be writable. * Changed BACnet R/W FSM module to remove dependency on rpm_ack_decode_service_request() which uses large calloc/free - value lists. Created an alternate RPM-ACK to RP-ACK processing + value lists. Created an alternate RPM-ACK to RP-ACK processing function. (#583) * Changed basic RPM handler to skip over unknown property values. (#583) * Changed the release script to use tag option and remove tag reminder. diff --git a/CMakeLists.txt b/CMakeLists.txt index 255ac84e..1d1956ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -741,13 +741,13 @@ if(BACNET_STACK_BUILD_APPS) target_compile_options(mstpcap PRIVATE # NOTE: Might be that this example currently doesn't work on Windows because # of the following warning: - + # 'strncasecmp': macro redefinition $<$:/wd4005> # 'gettimeofday' undefined; assuming extern returning int $<$:/wd4013> ) - + add_executable(mstpcrc apps/mstpcrc/main.c) target_link_libraries(mstpcrc PRIVATE ${PROJECT_NAME}) target_compile_options(mstpcrc PRIVATE @@ -842,7 +842,7 @@ if(BACNET_STACK_BUILD_APPS) target_compile_options(router PRIVATE # These make this example not totally C90 compatible but it is ok. - + -Wno-declaration-after-statement -Wno-overlength-strings -Wno-variadic-macros diff --git a/Dockerfile b/Dockerfile index 38dcbc43..94e0ee18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ FROM ubuntu:focal as builder # /opt/bacnet/bin/bacrp 1234 device 1234 object-name ## etc. -## Check bacnet-stack/bin/readme.txt for more docs related to the +## Check bacnet-stack/bin/readme.txt for more docs related to the ## example utilities and environment variables. Note that this docker ## image does not add the shell scripts in that folder as many of them ## are broken. Even so, reading them may be instructive. @@ -30,7 +30,7 @@ SHELL ["/bin/bash", "-c"] RUN set -xe; \ apt-get update; apt-get upgrade -y; apt-get --purge autoremove -y; \ apt-get install -y build-essential curl; \ - apt-get -y autoclean; apt-get -y clean + apt-get -y autoclean; apt-get -y clean RUN set -euxo pipefail; \ mkdir -p /build/bin; \ @@ -50,4 +50,3 @@ COPY --from=builder /build/bin/* /opt/bacnet/bin/ EXPOSE 47808/udp ENTRYPOINT ["/opt/bacnet/bin/bacserv"] CMD ["1234", "test_server"] - diff --git a/README.md b/README.md index 55165ce9..54dc51a0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# BACnet Stack +# BACnet Stack BACnet open source protocol stack C library for embedded systems, Linux, MacOS, BSD, and Windows @@ -38,18 +38,18 @@ the standard (just like IEEE or ANSI or ISO). For software developers, the BACnet protocol is a standard way to send and receive messages containing data that are understood by other BACnet compliant devices. The BACnet standard defines a standard way to communicate -over various wires or radios, known as Data Link/Physical Layers: Ethernet, -EIA-485, EIA-232, ARCNET, and LonTalk. The BACnet standard also defines a +over various wires or radios, known as Data Link/Physical Layers: Ethernet, +EIA-485, EIA-232, ARCNET, and LonTalk. The BACnet standard also defines a standard way to communicate using UDP, IP, HTTP (Web Services), and Websockets. This BACnet protocol stack implementation is specifically designed for the embedded BACnet appliance, using a GPL with exception license (like eCos), -which means that any changes to the core code that are distributed are shared, -but the BACnet library can be linked to proprietary code without the proprietary -code becoming GPL. Note that some of the source files are designed as +which means that any changes to the core code that are distributed are shared, +but the BACnet library can be linked to proprietary code without the proprietary +code becoming GPL. Note that some of the source files are designed as skeleton or example or template files, and are not copyrighted as GPL. -The text of the GPL exception included in each source file is as follows: +The text of the GPL exception included in each source file is as follows: * SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0 ^^^^^^^^^^^^^^^^^^^^^^ @@ -70,8 +70,8 @@ https://sourceforge.net/p/bacnet/src/ci/master/tree/doc/README.developer This stack includes unit tests that can be run using the Makefile in the project root directory "make test". -The unit tests can also be run using individual make invocations. -The unit tests run a PC and continue to do so with +The unit tests can also be run using individual make invocations. +The unit tests run a PC and continue to do so with every commit within the Continuous Integration environment. The BACnet stack was functionally tested using a variety of tools @@ -80,7 +80,7 @@ in many products that successfully completed BTL testing. Using the Makefile in the project root directory, a dozen sample applications are created that run under Windows or Linux. They use the BACnet/IPv4 datalink -layer for communication by default, but could be compiled to use BACnet IPv6, +layer for communication by default, but could be compiled to use BACnet IPv6, Ethernet, ARCNET, or MS/TP. Linux/Unix/Cygwin @@ -106,7 +106,7 @@ to generate a Code::Blocks project: $ mkdir build $ cd build/ $ cmake .. -G"CodeBlocks - Unix Makefiles" - + c:\> mkdir build c:\> cd build/ c:\> cmake .. -G"CodeBlocks - MinGW Makefiles" @@ -114,22 +114,22 @@ to generate a Code::Blocks project: The unit tests also use CMake and may be run with the command sequence: $ make test - + The unit test framework uses a slightly modified ztest, and the tests are located -in the test/ folder. The unit test builder uses CMake, and the test coverage -uses LCOV. The HTML results of the unit testing coverage are available starting +in the test/ folder. The unit test builder uses CMake, and the test coverage +uses LCOV. The HTML results of the unit testing coverage are available starting in the test/build/lcoverage/index.html file. The demo applications are all client applications that provide one main BACnet -service, except the one server application and one gateway application, +service, except the one server application and one gateway application, a couple router applications, and a couple of MS/TP specific applications. -Each application will accept command line parameters, and prints the output to -stdout or stderr. The client applications are command line based and can -be used in scripts or for troubleshooting. -The demo applications make use of environment variables to +Each application will accept command line parameters, and prints the output to +stdout or stderr. The client applications are command line based and can +be used in scripts or for troubleshooting. +The demo applications make use of environment variables to setup the network options. See each individual demo for the options. -There are also projects in the ports/ directory for ARM7, AVR, RTOS-32, PIC, +There are also projects in the ports/ directory for ARM7, AVR, RTOS-32, PIC, and others. Each of those projects has a demo application for specific hardware. In the case of the ARM7 and AVR, their makefile works with GCC compilers and there are project files for IAR Embedded Workbench and Rowley Crossworks for ARM. @@ -146,7 +146,7 @@ Project Mailing List and Help If you want to contribute to this project and have some C coding skills, join us via https://github.com/bacnet-stack/bacnet-stack/ or via https://sourceforge.net/p/bacnet/src/ and create a -fork or branch, and eventually a pull request to have +fork or branch, and eventually a pull request to have your code considered for inclusion. If you find a bug in this project, please tell us about it at @@ -154,7 +154,7 @@ https://sourceforge.net/p/bacnet/bugs/ or https://github.com/bacnet-stack/bacnet-stack/issues -If you have a support request, you can post it at +If you have a support request, you can post it at https://sourceforge.net/p/bacnet/support-requests/ If you have a feature request, you can post it at @@ -171,6 +171,6 @@ I hope that you get your BACnet Device working! Steve Karg, Birmingham, Alabama USA skarg@users.sourceforge.net -ASHRAE® and BACnet® are registered trademarks of the +ASHRAE® and BACnet® are registered trademarks of the American Society of Heating, Refrigerating and Air-Conditioning Engineers, Inc. 180 Technology Parkway NW, Peachtree Corners, Georgia 30092 US. diff --git a/apps/Makefile b/apps/Makefile index e446e192..4efbc9e4 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -148,7 +148,7 @@ DEBUGGING ?= # enable all relevant warnings that find bugs WARNING_ALL := -Wall -Wextra -pedantic WARNING_ALL += -Wfloat-equal -Wconversion -WARNING_ALL += -Wredundant-decls -Wswitch-default +WARNING_ALL += -Wredundant-decls -Wswitch-default WARNING_ALL += -Wunused-variable # don't warn about conversion, sign, compares, long long and attributes # since they are common in embedded @@ -459,4 +459,3 @@ fuzz-afl: $(BACNET_LIB_TARGET) .PHONY: writepropm writepropm: $(BACNET_LIB_TARGET) $(MAKE) -B -C $@ - diff --git a/apps/abort/Makefile b/apps/abort/Makefile index 817f24b4..e9b2f235 100644 --- a/apps/abort/Makefile +++ b/apps/abort/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/abort/main.c b/apps/abort/main.c index fa0867dc..f6fd78cc 100644 --- a/apps/abort/main.c +++ b/apps/abort/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet service Abort message + * @brief command line tool that sends a BACnet service Abort message * to the network * @author Steve Karg * @date 2016 diff --git a/apps/ack-alarm/Makefile b/apps/ack-alarm/Makefile index 16d41bfa..e74500d8 100644 --- a/apps/ack-alarm/Makefile +++ b/apps/ack-alarm/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/apdu/Makefile b/apps/apdu/Makefile index 2de9a288..cda23805 100644 --- a/apps/apdu/Makefile +++ b/apps/apdu/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/blinkt/Makefile b/apps/blinkt/Makefile index d6fdb297..dc961758 100644 --- a/apps/blinkt/Makefile +++ b/apps/blinkt/Makefile @@ -53,4 +53,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/blinkt/README.md b/apps/blinkt/README.md index 086b74a0..a79ca774 100644 --- a/apps/blinkt/README.md +++ b/apps/blinkt/README.md @@ -5,7 +5,7 @@ for the eight RGB (red-green-blue) LEDs attached to the Blinkt! card. ## Installation -The demo uses pigpiod (Pi GPIO Daemon) and developer library. To install +The demo uses pigpiod (Pi GPIO Daemon) and developer library. To install and run the daemon at powerup (and immediately): $ sudo apt install libpigpio-dev libpigpiod-if-dev pigpiod @@ -14,12 +14,12 @@ and run the daemon at powerup (and immediately): ## WiFi Power -If you are using a Raspberry Pi with WiFi, you will likely want +If you are using a Raspberry Pi with WiFi, you will likely want to disable WiFi Power saving. Under Raspberry Pi OS, so the following. ### Startup service in systemd -To manage to start programs you should use systemd Unit files. +To manage to start programs you should use systemd Unit files. File name: /etc/systemd/system/wlan0pwr.service @@ -44,9 +44,9 @@ In the empty editor insert these statements, save them and quit the editor: Enable the new service with: rpi ~$ sudo systemctl enable wlan0pwr.service - + ## Building the Blinkt! BACnet Application - + Build from the root folder: $ make blinkt @@ -59,8 +59,8 @@ Run from the bin/ folder: ## Blinkt! as a Startup service with systemd -To manage to start programs you should use systemd Unit files. -Here is a very simple template you can use to start to solve your problem. +To manage to start programs you should use systemd Unit files. +Here is a very simple template you can use to start to solve your problem. Create a new service with: rpi ~$ sudo systemctl --full --force edit bacnet.service @@ -81,13 +81,12 @@ Enable the new service after the next reboot with: rpi ~$ sudo systemctl enable bacnet.service -Create your bacnet.sh shell script in your home folder (change from pi if +Create your bacnet.sh shell script in your home folder (change from pi if that is not your home folder). Use the shell script to set any environment -variables that you want, or configuration settings for the bin/bacblinkt +variables that you want, or configuration settings for the bin/bacblinkt application such as a specific device ID. A simplistic bacnet.sh script will look like this (with stdout/stderr to /dev/null): #!/bin/bash /home/pi/bacnet-stack/bin/bacblinkt 9009 > /dev/null 2>&1 - diff --git a/apps/blinkt/device.c b/apps/blinkt/device.c index e38e6e9a..09f778d4 100644 --- a/apps/blinkt/device.c +++ b/apps/blinkt/device.c @@ -1,5 +1,5 @@ -/** - * @file +/** + * @file * @brief Base "class" for handling all BACnet objects belonging * to a BACnet device, as well as Device-specific properties. * @author Steve Karg diff --git a/apps/blinkt/main.c b/apps/blinkt/main.c index b4ef416f..13f5538b 100644 --- a/apps/blinkt/main.c +++ b/apps/blinkt/main.c @@ -1,6 +1,6 @@ -/** - * @file - * @brief Example application using the BACnet Stack on a Raspberry Pi +/** + * @file + * @brief Example application using the BACnet Stack on a Raspberry Pi * with Blinkt! LEDs. * @author Steve Karg * @date 2023 diff --git a/apps/dcc/Makefile b/apps/dcc/Makefile index a86bab36..27699783 100644 --- a/apps/dcc/Makefile +++ b/apps/dcc/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/epics/Makefile b/apps/epics/Makefile index bc4ffdaa..7bb3d0bd 100644 --- a/apps/epics/Makefile +++ b/apps/epics/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/epics/bacepics.h b/apps/epics/bacepics.h index 179086f6..7d7bcd16 100644 --- a/apps/epics/bacepics.h +++ b/apps/epics/bacepics.h @@ -27,13 +27,13 @@ * Allows you to communicate with a localhost target. * -t: declare target's MAC instead of using Who-Is to bind to * device-instance. Format is "C0:A8:00:18:BA:C0" (as usual) - * + * * Examples: - * ./bacepics -v 1234 + * ./bacepics -v 1234 * where the device instance to be addressed is 1234 * and the optional -v prints values out rather than the '?' that * the EPICS format for VTS3 wants. - * ./bacepics -p 0xBAC1 -t "7F:0:0:1:BA:C0" 4194303 + * ./bacepics -p 0xBAC1 -t "7F:0:0:1:BA:C0" 4194303 * communicates with the BACnet device on localhost (127.0.0.1), using * port 47809 as "my" source port so it doesn't conflict with * the device's port 47808. @@ -48,13 +48,13 @@ * ALL again with array index of 0, which should result mostly in errors * but will provide the list of supported properties. * - If that succeeds, build the list of properties to be accessed.
- * - If no RPM or failed to get ALL properties from the target device, then - * fetch the coded Required and Optional properties from the demo/object - * folder for this object type, and use this to build the list of + * - If no RPM or failed to get ALL properties from the target device, then + * fetch the coded Required and Optional properties from the demo/object + * folder for this object type, and use this to build the list of * properties to be accessed. * - If the Fetch All succeeded, print the values for each property * - Otherwise, for each property in the list for this object, - * - Request the single property value with ReadProperty (RP) + * - Request the single property value with ReadProperty (RP) * - From the response, print the property's value * The Device Object will have fetched the Object List property and built a list * of objects from that; use it now to cycle through each other Object and diff --git a/apps/epics/main.c b/apps/epics/main.c index 7b04e6e4..8f3703b5 100644 --- a/apps/epics/main.c +++ b/apps/epics/main.c @@ -575,7 +575,7 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, } } else if (rpm_property->propertyIdentifier == PROP_SUBORDINATE_LIST) { - if (value->tag != + if (value->tag != BACNET_APPLICATION_TAG_DEVICE_OBJECT_REFERENCE) { break; } @@ -648,7 +648,7 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, /* Closing brace for this multi-valued array */ fprintf(stdout, " }"); } - if (property_list_writable_member(object_type, + if (property_list_writable_member(object_type, rpm_property->propertyIdentifier)) { fprintf(stdout, " Writable"); } diff --git a/apps/error/Makefile b/apps/error/Makefile index 42fbac47..4ff3a304 100644 --- a/apps/error/Makefile +++ b/apps/error/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/error/main.c b/apps/error/main.c index 41a83206..eaf0cccd 100644 --- a/apps/error/main.c +++ b/apps/error/main.c @@ -1,7 +1,7 @@ /** * @file * @brief command line tool that sends a BACnet service to the network: - * BACnet Error message + * BACnet Error message * @author Steve Karg * @date 2016 * @copyright SPDX-License-Identifier: MIT diff --git a/apps/event/Makefile b/apps/event/Makefile index 58e82abb..9cdab075 100644 --- a/apps/event/Makefile +++ b/apps/event/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/fuzz-afl/README.md b/apps/fuzz-afl/README.md index 9c1ffcc0..1c621cd4 100644 --- a/apps/fuzz-afl/README.md +++ b/apps/fuzz-afl/README.md @@ -15,10 +15,7 @@ afl-cc 2.57b by afl-fuzz -i -o -m none ./apps/fuzz-afl/fuzz-afl ``` -Caveats: +Caveats: * This builds the target with ASAN (Address Sanitizer). This makes AFL require the `-m none` to not interpret ASAN's behavior as a crash * AFL uses a fork/exec model to launch the target. This is nice because each testcase is from a clean state. But this also brings in a lot of overhead. If you need something faster, check out ../fuzz-libfuzzer/ - - - diff --git a/apps/fuzz-afl/main.c b/apps/fuzz-afl/main.c index b8278118..584a8dc9 100644 --- a/apps/fuzz-afl/main.c +++ b/apps/fuzz-afl/main.c @@ -35,7 +35,7 @@ #include "bacnet/datalink/bvlc.h" #include "bacnet/basic/bbmd/h_bbmd.h" -// Pull in all of this... +// Pull in all of this... #include "../router-mstp/main.c" static void Init_Service_Handlers() @@ -86,7 +86,7 @@ extern int Device_Reinitialize(void) { int main(int argc, char *argv[]) { - BACNET_ADDRESS src = { 0 }; + BACNET_ADDRESS src = { 0 }; uint16_t pdu_len = 0; Init_Service_Handlers(); diff --git a/apps/fuzz-libfuzzer/README.md b/apps/fuzz-libfuzzer/README.md index a707d30b..e91bcb1d 100644 --- a/apps/fuzz-libfuzzer/README.md +++ b/apps/fuzz-libfuzzer/README.md @@ -17,12 +17,12 @@ INFO: seed corpus: files: 5790 min: 1b max: 483b total: 305068b rss: 40Mb NPDU: Decoding failed; Discarded! ... NPDU: DNET=65280. Discarded! -#5867 REDUCE cov: 208 ft: 249 corp: 66/1273b lim: 115 exec/s: 2933 rss: 106Mb L: 12/109 MS: 1 EraseBytes- +#5867 REDUCE cov: 208 ft: 249 corp: 66/1273b lim: 115 exec/s: 2933 rss: 106Mb L: 12/109 MS: 1 EraseBytes- Received Reserved for Use by ASHRAE WP: Failed to send PDU (Success)! - NEW_FUNC[1/3]: 0x55a0d533f98a in abort_encode_apdu /mnt/net/lab_share/Bacnet/bacnet-stack-fixes/src/bacnet/abort.c:149 - NEW_FUNC[2/3]: 0x55a0d538f29a in wp_decode_service_request /mnt/net/lab_share/Bacnet/bacnet-stack-fixes/src/bacnet/wp.c:113 -#5940 NEW cov: 216 ft: 257 corp: 68/1282b lim: 115 exec/s: 2970 rss: 106Mb L: 6/109 MS: 2 EraseBytes-ChangeBit- + NEW_FUNC[1/3]: 0x55a0d533f98a in abort_encode_apdu /mnt/net/lab_share/Bacnet/bacnet-stack-fixes/src/bacnet/abort.c:149 + NEW_FUNC[2/3]: 0x55a0d538f29a in wp_decode_service_request /mnt/net/lab_share/Bacnet/bacnet-stack-fixes/src/bacnet/wp.c:113 +#5940 NEW cov: 216 ft: 257 corp: 68/1282b lim: 115 exec/s: 2970 rss: 106Mb L: 6/109 MS: 2 EraseBytes-ChangeBit- Received Reserved for Use by ASHRAE ... ================================================================= @@ -45,7 +45,6 @@ READ of size 1 at 0x60200003b656 thread T0 ... ``` -Caveat: +Caveat: * Libfuzzer does not reinitialize the target on each testcase. This means that it will be much quicker than ../fuzz-afl/, BUT it will also be a little less stable. It also will not continue to fuzz after a crash is found (since the libfuzzer runtime shares a process with the target that just crashed). There may be some command line options to adopt a fork model. - diff --git a/apps/fuzz-libfuzzer/main.c b/apps/fuzz-libfuzzer/main.c index 90e4a362..b720d777 100644 --- a/apps/fuzz-libfuzzer/main.c +++ b/apps/fuzz-libfuzzer/main.c @@ -36,7 +36,7 @@ #include "bacnet/datalink/bvlc.h" #include "bacnet/basic/bbmd/h_bbmd.h" -// Pull in all of this... +// Pull in all of this... #include "../router-mstp/main.c" static void Init_Service_Handlers(void) { @@ -83,7 +83,7 @@ extern int Device_Reinitialize(void) { return 0; } -extern bool Device_COV(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { +extern bool Device_COV(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { return false; } extern void Device_COV_Clear(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { @@ -98,11 +98,11 @@ extern bool Device_Encode_Value_List(BACNET_OBJECT_TYPE object_type, } -extern int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { +extern int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { return BACNET_STATUS_ERROR; } -extern int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { +extern int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { return BACNET_STATUS_ERROR; } @@ -111,7 +111,7 @@ extern bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) { } int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { - BACNET_ADDRESS src = { 0 }; + BACNET_ADDRESS src = { 0 }; Init_Service_Handlers(); diff --git a/apps/gateway/gateway.h b/apps/gateway/gateway.h index 2f5511f5..0cf45e7f 100644 --- a/apps/gateway/gateway.h +++ b/apps/gateway/gateway.h @@ -1,6 +1,6 @@ /** * @file - * @brief Header for example gateway (ie, BACnet Router and Devices) + * @brief Header for example gateway (ie, BACnet Router and Devices) * using the BACnet Stack. * @author Tom Brennan * @date 2010 @@ -11,7 +11,7 @@ /** @defgroup GatewayDemo Demo of a BACnet virtual gateway (multiple Device). * @ingroup Demos - * This is a basic demonstration of a BACnet Router with child devices (ie, + * This is a basic demonstration of a BACnet Router with child devices (ie, * gateway) appearing on a virtual BACnet network behind the Router. * This is an extension of the ServerDemo project. */ diff --git a/apps/getevent/Makefile b/apps/getevent/Makefile index 8dce94f7..406e5c4e 100644 --- a/apps/getevent/Makefile +++ b/apps/getevent/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/iam/Makefile b/apps/iam/Makefile index 554baa58..890c10af 100644 --- a/apps/iam/Makefile +++ b/apps/iam/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/iamrouter/Makefile b/apps/iamrouter/Makefile index edf8a991..a66d84e0 100644 --- a/apps/iamrouter/Makefile +++ b/apps/iamrouter/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/iamrouter/main.c b/apps/iamrouter/main.c index 74e6fb9f..1e94e3f4 100644 --- a/apps/iamrouter/main.c +++ b/apps/iamrouter/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet I-Am-Router-To-Network message + * @brief command line tool that sends a BACnet I-Am-Router-To-Network message * for one or more networks. * @author Steve Karg * @date 2008 diff --git a/apps/initrouter/Makefile b/apps/initrouter/Makefile index f992e7d8..3fcd9b6c 100644 --- a/apps/initrouter/Makefile +++ b/apps/initrouter/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/initrouter/main.c b/apps/initrouter/main.c index 427df321..f6aefc5a 100644 --- a/apps/initrouter/main.c +++ b/apps/initrouter/main.c @@ -1,7 +1,7 @@ /** * @file - * @brief command line tool that sends a BACnet Initialize-Routing-Table - * message to a network and waits for responses. Displays their network + * @brief command line tool that sends a BACnet Initialize-Routing-Table + * message to a network and waits for responses. Displays their network * information from the response. This is a router-to-router message. * @author Steve Karg * @date 2008 diff --git a/apps/mstpcap/Makefile b/apps/mstpcap/Makefile index 74cb1699..0a5823ed 100644 --- a/apps/mstpcap/Makefile +++ b/apps/mstpcap/Makefile @@ -60,7 +60,7 @@ ${TARGET_BIN}: ${OBJS} Makefile ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ size $@ cp $@ ../../bin - + .c.o: ${CC} -c ${CFLAGS} $*.c -o $@ diff --git a/apps/netnumis/Makefile b/apps/netnumis/Makefile index 9518a174..891bce78 100644 --- a/apps/netnumis/Makefile +++ b/apps/netnumis/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/perl/Documentation/index.html b/apps/perl/Documentation/index.html index 8823f314..1d99da0d 100644 --- a/apps/perl/Documentation/index.html +++ b/apps/perl/Documentation/index.html @@ -16,68 +16,68 @@ @@ -257,7 +257,7 @@ mechanisms. NOTE: all enumerations are defined in bacenum.hThis function prints out to the desired method of logging (STDOUT or file). NewLine characters are not required when making calls to this function. If any NewLine characters are specified, they will be stripped out. To print an empty -line, pass in a space as the message. NOTE: This function will honor previous +line, pass in a space as the message. NOTE: This function will honor previous requests to silence the log (see SilcenseLog for details)

diff --git a/apps/perl/Documentation/syntax.css b/apps/perl/Documentation/syntax.css index 7b9c78c5..1992cae6 100644 --- a/apps/perl/Documentation/syntax.css +++ b/apps/perl/Documentation/syntax.css @@ -39,37 +39,37 @@ ul { } .quotedString { - color: #0000FF; + color: #0000FF; } .comment { - color: #999999; + color: #999999; } .operator { - color: #00CCCC; + color: #00CCCC; } .builtinVariable { - color: #CCCC00; + color: #CCCC00; } .variableSpecifier { - color: #FF0000; + color: #FF0000; } .keyword { - color: #AA0033; + color: #AA0033; } .builtinFunction { - color: #AA00AA; + color: #AA00AA; } .identifier { - color: #009900; + color: #009900; } .number { - color: #9999FF; + color: #9999FF; } diff --git a/apps/perl/Documentation/syntax.js b/apps/perl/Documentation/syntax.js index bce49d90..d42659e0 100644 --- a/apps/perl/Documentation/syntax.js +++ b/apps/perl/Documentation/syntax.js @@ -6,7 +6,7 @@ function emulateHTMLModel() // This function is used to generate a html string for the text properties/methods // It replaces '\n' with " as well as fixes consecutive white spaces -// It also repalaces some special characters +// It also repalaces some special characters function convertTextToHTML(s) { s = s.replace(/\&/g, "&").replace(//g, ">").replace(/\n/g, "
").replace(/\t/g, " "); //tachyon while (/\s\s/.test(s)) @@ -17,7 +17,7 @@ function convertTextToHTML(s) { HTMLElement.prototype.__defineSetter__("innerText", function (sText) { this.innerHTML = convertTextToHTML(sText); - return sText; + return sText; }); var tmpGet; @@ -29,7 +29,7 @@ HTMLElement.prototype.__defineGetter__("innerText", tmpGet = function () { } -if (moz) +if (moz) emulateHTMLModel(); @@ -45,7 +45,7 @@ RE[0] = new RegExp(re); // comment re = /\#.*?([\r\n]+|$)/; //tachyon RE[1] = new RegExp(re); - + // operator re = /xor|\.\.\.|and|not|\|\|\=|cmp|\>\>\=|\<\<\=|\<\=\>|\&\&\=|or|\=\>|\!\~|\^\=|\&\=|\|\=|\.\=|x\=|\%\=|\/\=|\*\=|\-\=|\+\=|\=\~|\*\*|\-\-|\.\.|\|\||\&\&|\+\+|\-\>|ne|eq|\!\=|\=\=|ge|le|gt|lt|\>\=|\<\=|\>\>|\<\<|\,|\=|\:|\?|\^|\||x|\%|\/|\*|\<|\&|\\|\~|\!|\>|\.|\-|\+ /; RE[2] = new RegExp(re); @@ -86,46 +86,46 @@ var classes = new Array("quotedString", "comment", "operator", "builtinVariable */ function HighlightCode(object) { - codeText = object.innerText; //HTML.replace(/<.*?>/g, ""); - object.innerHTML = ''; - var left; - var match; - var right; - while (codeText.length > 0) - { - var mode = -1 ; - var index = 999999999; - for (var i = 0; i < RE.length; i++) - { - if ((codeText.match(RE[i])) && (RegExp.leftContext.length < index)) - { - left = RegExp.leftContext; - match = RegExp.lastMatch; - right = RegExp.rightContext; - index = RegExp.leftContext.length; - mode = i; - } - } - if (mode == -1) - { - object.appendChild(document.createTextNode(codeText)); //.replace(/\r\n/g, "\r"))); - codeText = ''; - } - else - { - // append the plain text to the block - object.appendChild(document.createTextNode(left)); //.replace(/\r\n/g, "\r"))); + codeText = object.innerText; //HTML.replace(/<.*?>/g, ""); + object.innerHTML = ''; + var left; + var match; + var right; + while (codeText.length > 0) + { + var mode = -1 ; + var index = 999999999; + for (var i = 0; i < RE.length; i++) + { + if ((codeText.match(RE[i])) && (RegExp.leftContext.length < index)) + { + left = RegExp.leftContext; + match = RegExp.lastMatch; + right = RegExp.rightContext; + index = RegExp.leftContext.length; + mode = i; + } + } + if (mode == -1) + { + object.appendChild(document.createTextNode(codeText)); //.replace(/\r\n/g, "\r"))); + codeText = ''; + } + else + { + // append the plain text to the block + object.appendChild(document.createTextNode(left)); //.replace(/\r\n/g, "\r"))); - // create a new with the current code - var span = document.createElement("span"); - span.setAttribute("className", classes[mode]); // ie - span.setAttribute("class", classes[mode]); //mozilla - span.appendChild(document.createTextNode(match)); - object.appendChild(span); + // create a new with the current code + var span = document.createElement("span"); + span.setAttribute("className", classes[mode]); // ie + span.setAttribute("class", classes[mode]); //mozilla + span.appendChild(document.createTextNode(match)); + object.appendChild(span); - codeText = right; - } - } + codeText = right; + } + } } // little bit of JQuery to highlight code in all pre elements @@ -134,4 +134,3 @@ $(document).ready(function(){ HighlightCode(this); }); }); - diff --git a/apps/perl/bacnet.pl b/apps/perl/bacnet.pl index 75291a68..651417d6 100644 --- a/apps/perl/bacnet.pl +++ b/apps/perl/bacnet.pl @@ -12,7 +12,7 @@ use Carp; =head1 NAME -bacnet.pl - Scriptable BACnet communications +bacnet.pl - Scriptable BACnet communications =head1 DESCRIPTION @@ -33,7 +33,7 @@ Perl documentation, see http://perldoc.perl.org Usage: bacnet.pl [program_options] [-- script_args] This program executes a script in perl syntax to perform BACnet/IP operations. - + Possible program options: --script=s The script to execute. --log=s The file to log all output. @@ -116,7 +116,7 @@ BEGIN { } use Inline ( - C => Config => + C => Config => LIBS => "-L$libDir -lbacnet -liphlpapi", INC => ["-I$incDir1", "-I$incDir2", "-I$incDir3"], DIRECTORY => $inlineBuildDir, @@ -141,7 +141,7 @@ my $answer = ''; 'help|?' => \$ask_help, 'script=s' => \$script, 'log=s' => \$log, -); +); if (!defined($script) || !(-f $script)) { @@ -150,7 +150,7 @@ if (!defined($script) || !(-f $script)) } else { - # Add the script's location to @INC so that they can include other scripts + # Add the script's location to @INC so that they can include other scripts # using relative paths my $scriptdir = File::Spec->rel2abs(dirname($script)); push @INC,$scriptdir; @@ -308,7 +308,7 @@ sub ReadProperty { =head2 ReadPropertyMultiple This function implements the ReadPropertyMultiple service. There are no built in retry -mechanisms. NOTE: all enumerations are defined in F +mechanisms. NOTE: all enumerations are defined in F =head3 Inputs to ReadPropertyMultiple @@ -414,7 +414,7 @@ sub ReadPropertyMultiple =head2 WriteProperty This function implements the WriteProperty service. There are no built in retry -mechanisms. NOTE: all enumerations are defined in F +mechanisms. NOTE: all enumerations are defined in F =head3 Inputs to WriteProperty @@ -494,7 +494,7 @@ sub WriteProperty { } else { - # a priority of 0 means we are not writing to a priority array + # a priority of 0 means we are not writing to a priority array $priority = 0; } $msg .= " in Device" . '[' . $deviceInstance . "] ==> "; @@ -553,7 +553,7 @@ This function implements the TimeSync and UTCTimeSync services =cut -sub TimeSync +sub TimeSync { my $deviceInstanceNumber = shift; my $year = shift; @@ -574,7 +574,7 @@ sub TimeSync # be a pessimist. Assume things will fail $isFailure = 1; - + if (defined($utcOffset)) { $isUTC = 1; @@ -586,7 +586,7 @@ sub TimeSync $utcOffset = 0; $isUTC = 0; } - + if ($year < 1900 || $year > 2099) { Log("Year '$year' is invalid."); @@ -610,7 +610,7 @@ sub TimeSync Log("Hour '$hour' is invalid."); last; } - + if ($minute < 0 || $minute > 59) { Log("Minute '$minute' is invalid."); @@ -629,7 +629,7 @@ sub TimeSync last; } - return $isFailure; + return $isFailure; } =head2 Log @@ -637,7 +637,7 @@ sub TimeSync This function prints out to the desired method of logging (STDOUT or file). NewLine characters are not required when making calls to this function. If any NewLine characters are specified, they will be stripped out. To print an empty -line, pass in a space as the message. NOTE: This function will honor previous +line, pass in a space as the message. NOTE: This function will honor previous requests to silence the log (see SilcenseLog for details) =head3 Inputs to Log @@ -671,7 +671,7 @@ sub Log { # if there is nothing to print, then don't do it return if (scalar(@last) == 0); - + # if there are newline-like characters, get rid of them. while ($msg =~/^(.*)[\r\n]+(.*)$/) { @@ -866,4 +866,3 @@ sub LogAnswer { $answer = '' unless $append; $answer .= $newAnswer; } - diff --git a/apps/perl/perl_bindings.c b/apps/perl/perl_bindings.c index f37ace2a..2c389ae4 100644 --- a/apps/perl/perl_bindings.c +++ b/apps/perl/perl_bindings.c @@ -884,7 +884,7 @@ int BacnetTimeSync(int deviceInstanceNumber, &Target_Address, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { char msg[64]; - snprintf(msg, sizeof(msg), + snprintf(msg, sizeof(msg), "Failed to Send Time-Synchronization Request (%s)!", strerror(errno)); LogError(msg); diff --git a/apps/perl/readme.txt b/apps/perl/readme.txt index 4c40875d..899063cd 100644 --- a/apps/perl/readme.txt +++ b/apps/perl/readme.txt @@ -1,14 +1,14 @@ The BACnet Scriptable (using Perl) Tool. -* Running this tool assumes that the library has been already built. The +* Running this tool assumes that the library has been already built. The library should be built with a command similar to - + CC=/mingw/bin/gcc BACNET_DEFINES="-DPRINT_ENABLED -DBACAPP_ALL -DBACFILE -DINTRINSIC_REPORTING" BBMD_DEFINE=-DBBMD_ENABLED\=1 BACNET_PORT=win32 make clean library * Currently, the tool assumes only win32 port, but should be easily modifiable - for any port build. + for any port build. * This tool has to be run from a path without any spaces. The presence of the .Inline directory is required. * Run the tool without any arguments to see usage instructions @@ -16,5 +16,3 @@ The BACnet Scriptable (using Perl) Tool. Value) for Device at instance 1234 run the following command perl bacnet.pl --script example_readprop.pl -- 1234 - - diff --git a/apps/piface/Makefile b/apps/piface/Makefile index ac29b929..eb97f392 100644 --- a/apps/piface/Makefile +++ b/apps/piface/Makefile @@ -56,4 +56,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/piface/configure.sh b/apps/piface/configure.sh index 8b4de3bc..351932de 100755 --- a/apps/piface/configure.sh +++ b/apps/piface/configure.sh @@ -17,4 +17,3 @@ fi make -C libmcp23s17 make -C libpifacedigital - diff --git a/apps/piface/device.c b/apps/piface/device.c index c53fcad1..77cf715f 100644 --- a/apps/piface/device.c +++ b/apps/piface/device.c @@ -1,5 +1,5 @@ -/** - * @file +/** + * @file * @brief Base "class" for handling all BACnet objects belonging * to a BACnet device, as well as Device-specific properties. * @author Steve Karg diff --git a/apps/piface/readme.txt b/apps/piface/readme.txt index 44de8341..95f0a77d 100644 --- a/apps/piface/readme.txt +++ b/apps/piface/readme.txt @@ -6,5 +6,3 @@ To build, start with the configure script: $ ./configure.sh $ make clean all - - diff --git a/apps/ptransfer/Makefile b/apps/ptransfer/Makefile index 3b0cb9a6..98cdcff9 100644 --- a/apps/ptransfer/Makefile +++ b/apps/ptransfer/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readbdt/Makefile b/apps/readbdt/Makefile index e5a1de9c..4ccd7d03 100644 --- a/apps/readbdt/Makefile +++ b/apps/readbdt/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readbdt/main.c b/apps/readbdt/main.c index 37c4c72e..3b0bad2e 100644 --- a/apps/readbdt/main.c +++ b/apps/readbdt/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet BVLC message, and displays + * @brief command line tool that sends a BACnet BVLC message, and displays * the reply, for a Read-Broadcast-Distribution-Table message to a peer BBMD. * @author Steve Karg * @date 2012 diff --git a/apps/readfdt/Makefile b/apps/readfdt/Makefile index da61ad25..09f1ad29 100644 --- a/apps/readfdt/Makefile +++ b/apps/readfdt/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readfdt/main.c b/apps/readfdt/main.c index 9b065fa5..d6ca3697 100644 --- a/apps/readfdt/main.c +++ b/apps/readfdt/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet BVLC message, and displays + * @brief command line tool that sends a BACnet BVLC message, and displays * the reply, for a Read-Foreign-Device-Table message to a peer BBMD. * @author Steve Karg * @date 2012 diff --git a/apps/readfile/Makefile b/apps/readfile/Makefile index ad3cee6b..ca1540cb 100644 --- a/apps/readfile/Makefile +++ b/apps/readfile/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readprop/Makefile b/apps/readprop/Makefile index ccddc4f5..c550f28f 100644 --- a/apps/readprop/Makefile +++ b/apps/readprop/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readpropm/Makefile b/apps/readpropm/Makefile index e58d9f84..bc8413d4 100644 --- a/apps/readpropm/Makefile +++ b/apps/readpropm/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readpropm/main.c b/apps/readpropm/main.c index 6d8c1f14..74139203 100644 --- a/apps/readpropm/main.c +++ b/apps/readpropm/main.c @@ -1,7 +1,7 @@ /** * @file - * @brief command line tool that uses BACnet ReadPropertyMultiple service - * message to read object property values from another device on + * @brief command line tool that uses BACnet ReadPropertyMultiple service + * message to read object property values from another device on * the network and prints the values to the console. * @author Steve Karg * @date 2008 diff --git a/apps/readrange/Makefile b/apps/readrange/Makefile index 7076534a..ea96f209 100644 --- a/apps/readrange/Makefile +++ b/apps/readrange/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/readrange/main.c b/apps/readrange/main.c index 9f9991a1..caebe5c3 100644 --- a/apps/readrange/main.c +++ b/apps/readrange/main.c @@ -1,7 +1,7 @@ /** * @file - * @brief command line tool that uses BACnet ReadRange service - * message to read device object BACnetList or BACnetARRAY property values + * @brief command line tool that uses BACnet ReadRange service + * message to read device object BACnetList or BACnetARRAY property values * from another device on the network and prints the values to the console. * @author Steve Karg * @date 2006 diff --git a/apps/reinit/Makefile b/apps/reinit/Makefile index b1f3e1ac..d0623100 100644 --- a/apps/reinit/Makefile +++ b/apps/reinit/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/router-ipv6/main.c b/apps/router-ipv6/main.c index fd282c9f..e879b9f2 100644 --- a/apps/router-ipv6/main.c +++ b/apps/router-ipv6/main.c @@ -565,7 +565,7 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) * @param src [in] The routing source information, if any. * If src->net and src->len are 0, there is no routing source information. * @param npdu_data [in] Contains a filled-out structure with information - * decoded from the NCPI and other NPDU bytes. + * decoded from the NCPI and other NPDU bytes. * @param npdu [in] Buffer containing the rest of the NPDU, following the * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. @@ -618,7 +618,7 @@ static void who_is_router_to_network_handler(uint16_t snet, * @param src [in] The routing source information, if any. * If src->net and src->len are 0, there is no routing source information. * @param npdu_data [in] Contains a filled-out structure with information - * decoded from the NCPI and other NPDU bytes. + * decoded from the NCPI and other NPDU bytes. * @param npdu [in] Buffer containing the rest of the NPDU, following the * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. @@ -899,7 +899,7 @@ static void routed_apdu_handler(uint16_t snet, while (port != NULL) { if (port->net != snet) { datalink_send_pdu(port->net, dest, npdu, &Tx_Buffer[0], - npdu_len + apdu_len); + npdu_len + apdu_len); } port = port->next; } @@ -979,7 +979,7 @@ static void my_routing_npdu_handler( } } else { fprintf( - stderr, "NPDU: unsupported protocol version %u. Discarded!\n", + stderr, "NPDU: unsupported protocol version %u. Discarded!\n", protocol_version); } @@ -1118,7 +1118,7 @@ static void control_c_hooks(void) * @note This is a proxy function to satisfy the BACnet Stack IPv6 port layer * requirements since this application omits a Device object. */ -uint32_t Device_Object_Instance_Number(void) +uint32_t Device_Object_Instance_Number(void) { return Device_Instance_Number; } diff --git a/apps/router-mstp/main.c b/apps/router-mstp/main.c index fcb6702b..d70e60de 100644 --- a/apps/router-mstp/main.c +++ b/apps/router-mstp/main.c @@ -586,7 +586,7 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) * @param src [in] The routing source information, if any. * If src->net and src->len are 0, there is no routing source information. * @param npdu_data [in] Contains a filled-out structure with information - * decoded from the NCPI and other NPDU bytes. + * decoded from the NCPI and other NPDU bytes. * @param npdu [in] Buffer containing the rest of the NPDU, following the * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. @@ -639,7 +639,7 @@ static void who_is_router_to_network_handler(uint16_t snet, * @param src [in] The routing source information, if any. * If src->net and src->len are 0, there is no routing source information. * @param npdu_data [in] Contains a filled-out structure with information - * decoded from the NCPI and other NPDU bytes. + * decoded from the NCPI and other NPDU bytes. * @param npdu [in] Buffer containing the rest of the NPDU, following the * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. @@ -922,7 +922,7 @@ static void routed_apdu_handler(uint16_t snet, while (port != NULL) { if (port->net != snet) { datalink_send_pdu(port->net, dest, npdu, &Tx_Buffer[0], - npdu_len + apdu_len); + npdu_len + apdu_len); } port = port->next; } diff --git a/apps/router/Makefile b/apps/router/Makefile index ea92ac5d..bc889dbf 100644 --- a/apps/router/Makefile +++ b/apps/router/Makefile @@ -48,7 +48,7 @@ SRCS = main.c \ msgqueue.c \ network_layer.c -# note: router does not use common libbacnet.a library, +# note: router does not use common libbacnet.a library, # so use CFLAGS without common app defines or includes CFLAGS = -I${SOURCE_DIR} -I${BACNET_PORT_DIR} CFLAGS += -DBACNET_STACK_DEPRECATED_DISABLE diff --git a/apps/router/init.cfg b/apps/router/init.cfg index ed0d9aba..2e7e328c 100644 --- a/apps/router/init.cfg +++ b/apps/router/init.cfg @@ -2,67 +2,67 @@ configuration file that stores values for router ports initialization Common arguments: - device_type - "bip" or "mstp" (with quotes) - device - Connection device, for example "eth0" or "/dev/ttyS0" - network - Network number [1..65534]. Do not use network number 65535, it is broadcast number + device_type - "bip" or "mstp" (with quotes) + device - Connection device, for example "eth0" or "/dev/ttyS0" + network - Network number [1..65534]. Do not use network number 65535, it is broadcast number bip arguments: - port - bip UDP port, default 47808 + port - bip UDP port, default 47808 mstp arguments: - mac - MSTP MAC - max_master - MSTP max master - max_frames - 1 - baud - one from the list: 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 - parity - one from the list (with quotes): "None", "Even", "Odd" - databits - one from the list: 5, 6, 7, 8 - stopbits - 1 or 2 + mac - MSTP MAC + max_master - MSTP max master + max_frames - 1 + baud - one from the list: 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 + parity - one from the list (with quotes): "None", "Even", "Odd" + databits - one from the list: 5, 6, 7, 8 + stopbits - 1 or 2 Example: - ports = - ( - { - device_type = "bip"; - device = "eth0"; - port = 47808; - network = 1; - }, + ports = + ( + { + device_type = "bip"; + device = "eth0"; + port = 47808; + network = 1; + }, - { - device_type = "mstp"; - device = "/dev/ttyS0"; - mac = 1; - max_master = 127; - max_frames = 1; - baud = 38400; - parity = "None"; - databits = 8; - stopbits = 1; - network = 2; - } - ); + { + device_type = "mstp"; + device = "/dev/ttyS0"; + mac = 1; + max_master = 127; + max_frames = 1; + baud = 38400; + parity = "None"; + databits = 8; + stopbits = 1; + network = 2; + } + ); */ -ports = -( - { - device_type = "bip"; - device = "eth0"; - port = 47808; - network = 1; - }, +ports = +( + { + device_type = "bip"; + device = "eth0"; + port = 47808; + network = 1; + }, - { - device_type = "mstp"; - device = "/dev/ttyS0"; - mac = 2; - max_master = 127; - max_frames = 1; - baud = 38400; - parity = "None"; - databits = 8; - stopbits = 1; - network = 2; - } + { + device_type = "mstp"; + device = "/dev/ttyS0"; + mac = 2; + max_master = 127; + max_frames = 1; + baud = 38400; + parity = "None"; + databits = 8; + stopbits = 1; + network = 2; + } ); diff --git a/apps/router/ipmodule.h b/apps/router/ipmodule.h index 2602d962..f986f450 100644 --- a/apps/router/ipmodule.h +++ b/apps/router/ipmodule.h @@ -17,9 +17,9 @@ #include "portthread.h" #include "bacnet/datalink/bip.h" -#define MAX_BIP_APDU 1476 -#define MAX_BIP_PDU (MAX_NPDU + MAX_BIP_APDU) -#define MAX_BIP_MPDU (BIP_HEADER_MAX + MAX_BIP_PDU) +#define MAX_BIP_APDU 1476 +#define MAX_BIP_PDU (MAX_NPDU + MAX_BIP_APDU) +#define MAX_BIP_MPDU (BIP_HEADER_MAX + MAX_BIP_PDU) /* Yes, we know this is longer than an Ethernet Frame, a UDP payload and an IPv6 packet. Grandfathered in from BACnet Ethernet days, diff --git a/apps/router/readme.txt b/apps/router/readme.txt index 7db75c42..a31ffeb5 100644 --- a/apps/router/readme.txt +++ b/apps/router/readme.txt @@ -17,7 +17,7 @@ SPDX-License-Identifier: MIT 3. Build ----------------------- -1. Download, build and install libconfig C/C++ Configuration File Library +1. Download, build and install libconfig C/C++ Configuration File Library from http://www.hyperrealm.com/libconfig or use APT to install sudo apt-get install libconfig-dev 2. Run "make clean all" from library root directory @@ -32,101 +32,98 @@ SPDX-License-Identifier: MIT //single line comment /* - multiline comment + multiline comment */ ports = ( - //route_1 - { - device_type = ""; - //route specific arguments, see below - }, + //route_1 + { + device_type = ""; + //route specific arguments, see below + }, - //route_2 - { - device_type = ""; - //route specific arguments, see below - }, + //route_2 + { + device_type = ""; + //route specific arguments, see below + }, - //..... + //..... - //route_n - { - device_type = ""; - //route specific arguments, see below - } + //route_n + { + device_type = ""; + //route specific arguments, see below + } ); -Note: - arguments are separeted with ';' - - routes are separeted with ',' - - no ',' after the last route +Note: - arguments are separeted with ';' + - routes are separeted with ',' + - no ',' after the last route 4.2. Configuration file arguments. Common arguments: - device_type - Describes a type of route, may be "bip" (Etherent) or "mstp" (Serial port). Use quotes. - device - Connection device, for example "eth0" or "/dev/ttyS0"; default values: for BIP:"eth0", for MSTP: "/dev/ttyS0". Use quotes. - network - Network number [1..65534]. Do not use network number 65535, it is broadcast number; default begins from 1 to routes count. + device_type - Describes a type of route, may be "bip" (Etherent) or "mstp" (Serial port). Use quotes. + device - Connection device, for example "eth0" or "/dev/ttyS0"; default values: for BIP:"eth0", for MSTP: "/dev/ttyS0". Use quotes. + network - Network number [1..65534]. Do not use network number 65535, it is broadcast number; default begins from 1 to routes count. bip arguments: - port - bip UDP port; default port is 47808 (0xBAC0). + port - bip UDP port; default port is 47808 (0xBAC0). mstp arguments: - mac - MSTP MAC; default value is 127. - max_master - MSTP max master; default value is 127. - max_frames - 1. Segmentation does not supported. - baud - one from the list: 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400; default baud is 9600 - parity - one from the list (with quotes): "None", "Even", "Odd"; default parity "None". Use quotes. - databits - one from the list: 5, 6, 7, 8; default 8. - stopbits - 1 or 2; default 1. + mac - MSTP MAC; default value is 127. + max_master - MSTP max master; default value is 127. + max_frames - 1. Segmentation does not supported. + baud - one from the list: 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400; default baud is 9600 + parity - one from the list (with quotes): "None", "Even", "Odd"; default parity "None". Use quotes. + databits - one from the list: 5, 6, 7, 8; default 8. + stopbits - 1 or 2; default 1. 4.3. Example of configuration file. - ports = - ( - { - device_type = "bip"; - device = "eth0"; - port = 47808; - network = 1; - }, - { - device_type = "bip"; - device = "eth1"; - port = 47808; - network = 2; - }, - { - device_type = "bip"; - device = "eth1"; - port = 47809; - network = 3; - }, - { - device_type = "mstp"; - device = "/dev/ttyS0"; - mac = 1; - max_master = 127; - max_frames = 1; - baud = 38400; - parity = "None"; - databits = 8; - stopbits = 1; - network = 4; - } - ); + ports = + ( + { + device_type = "bip"; + device = "eth0"; + port = 47808; + network = 1; + }, + { + device_type = "bip"; + device = "eth1"; + port = 47808; + network = 2; + }, + { + device_type = "bip"; + device = "eth1"; + port = 47809; + network = 3; + }, + { + device_type = "mstp"; + device = "/dev/ttyS0"; + mac = 1; + max_master = 127; + max_frames = 1; + baud = 38400; + parity = "None"; + databits = 8; + stopbits = 1; + network = 4; + } + ); ----------------------- 5. Start ----------------------- -5.1. With configuration file +5.1. With configuration file 1. Copy configuration file in the router executable directory 2. Start the router with "sudo ./router -c init.cfg" command in terminal 5.2. Passing params in command line 1. sudo ./router -D "mstp" "/dev/ttyS0" --mac 1 127 1 --baud 38400 --network 4 -D "bip" "eth0" --network 1 - - - diff --git a/apps/scov/Makefile b/apps/scov/Makefile index df4fd746..4c7016c1 100644 --- a/apps/scov/Makefile +++ b/apps/scov/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/scov/main.c b/apps/scov/main.c index 130844cd..5e6a3332 100644 --- a/apps/scov/main.c +++ b/apps/scov/main.c @@ -1,8 +1,8 @@ /** * @file - * @brief command line tool that uses BACnet SubscribeCOV service + * @brief command line tool that uses BACnet SubscribeCOV service * message to subscribe to a BACnet object for Change-of-Value notifications - * in a BACnet device and print the Change-of-Value notifications values + * in a BACnet device and print the Change-of-Value notifications values * to the console. * @author Steve Karg * @date 2006 diff --git a/apps/server-client/Makefile b/apps/server-client/Makefile index 53d3f9ff..fd9001fa 100644 --- a/apps/server-client/Makefile +++ b/apps/server-client/Makefile @@ -42,4 +42,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/server-discover/Makefile b/apps/server-discover/Makefile index 65b72cf4..c4ce90e2 100644 --- a/apps/server-discover/Makefile +++ b/apps/server-discover/Makefile @@ -42,4 +42,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/server/Makefile b/apps/server/Makefile index 86dd4834..77c78c05 100644 --- a/apps/server/Makefile +++ b/apps/server/Makefile @@ -75,4 +75,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/server/epics_vts3.tpi b/apps/server/epics_vts3.tpi index e5c056ed..dcbdcf97 100644 --- a/apps/server/epics_vts3.tpi +++ b/apps/server/epics_vts3.tpi @@ -36,19 +36,19 @@ BIBBs Supported: -- SCHED-A SCHED-I-B SCHED-E-B -- T-VMT-A T-VMT-I-B T-VMT-E-B -- T-ATR-A T-ATR-B --- DM-DDB-A +-- DM-DDB-A DM-DDB-B --- DM-DOB-A +-- DM-DOB-A DM-DOB-B --- DM-DCC-A +-- DM-DCC-A DM-DCC-B -- DM-PT-A DM-PT-B -- DM-TM-A DM-TM-B --- DM-TS-A +-- DM-TS-A DM-TS-B --- DM-UTC-A +-- DM-UTC-A DM-UTC-B --- DM-RD-A +-- DM-RD-A DM-RD-B -- DM-BR-A DM-BR-B -- DM-R-A DM-R-B @@ -140,7 +140,7 @@ Data Link Layer Option: -- ISO 8802-3, 10BASET -- ISO 8802-3, Fiber -- ARCNET, coax star --- ARCNET, coax bus +-- ARCNET, coax bus -- ARCNET, twisted pair star -- ARCNET, twisted pair bus -- ARCNET, fiber star @@ -755,5 +755,3 @@ List of Objects in test device: } End of BACnet Protocol Implementation Conformance Statement - - diff --git a/apps/server/main.c b/apps/server/main.c index 68525fb8..416986b7 100644 --- a/apps/server/main.c +++ b/apps/server/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that simulates a BACnet server device on the + * @brief command line tool that simulates a BACnet server device on the * network using the BACnet Stack and all the example object types. * @author Steve Karg * @date 2006 @@ -179,15 +179,15 @@ static void Init_Service_Handlers(void) apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_HAS, handler_who_has); #if 0 - /* BACnet Testing Observed Incident oi00107 - Server only devices should not indicate that they EXECUTE I-Am - Revealed by BACnet Test Client v1.8.16 ( www.bac-test.com/bacnet-test-client-download ) - BITS: BIT00040 - Any discussions can be directed to edward@bac-test.com - Please feel free to remove this comment when my changes accepted after suitable time for - review by all interested parties. Say 6 months -> September 2016 */ - /* In this demo, we are the server only ( BACnet "B" device ) so we do not indicate - that we can execute the I-Am message */ + /* BACnet Testing Observed Incident oi00107 + Server only devices should not indicate that they EXECUTE I-Am + Revealed by BACnet Test Client v1.8.16 ( www.bac-test.com/bacnet-test-client-download ) + BITS: BIT00040 + Any discussions can be directed to edward@bac-test.com + Please feel free to remove this comment when my changes accepted after suitable time for + review by all interested parties. Say 6 months -> September 2016 */ + /* In this demo, we are the server only ( BACnet "B" device ) so we do not indicate + that we can execute the I-Am message */ /* handle i-am to support binding to other devices */ apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, handler_i_am_bind); #endif diff --git a/apps/timesync/Makefile b/apps/timesync/Makefile index 0b0cdc41..e4e3b183 100644 --- a/apps/timesync/Makefile +++ b/apps/timesync/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/timesync/main.c b/apps/timesync/main.c index 1cc2eaeb..2f7e86b7 100644 --- a/apps/timesync/main.c +++ b/apps/timesync/main.c @@ -1,7 +1,7 @@ /** * @file * @brief command line tool that sends a BACnet TimeSynchronization service - * message with the local or arbitrary time and date to sync another device + * message with the local or arbitrary time and date to sync another device * on the network. * @author Steve Karg * @date 2006 diff --git a/apps/ucov/Makefile b/apps/ucov/Makefile index f648329d..f24b71ec 100644 --- a/apps/ucov/Makefile +++ b/apps/ucov/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/ucov/main.c b/apps/ucov/main.c index 26d448e0..89d4f2af 100644 --- a/apps/ucov/main.c +++ b/apps/ucov/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet Unconfirmed Change-of-Value + * @brief command line tool that sends a BACnet Unconfirmed Change-of-Value * Notification to the network * @author Steve Karg * @date 2006 diff --git a/apps/uevent/Makefile b/apps/uevent/Makefile index ea345dde..5a23c129 100644 --- a/apps/uevent/Makefile +++ b/apps/uevent/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/uptransfer/Makefile b/apps/uptransfer/Makefile index 5e17dba1..af9a67bc 100644 --- a/apps/uptransfer/Makefile +++ b/apps/uptransfer/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/whatisnetnum/Makefile b/apps/whatisnetnum/Makefile index e5ecde88..e9b2710e 100644 --- a/apps/whatisnetnum/Makefile +++ b/apps/whatisnetnum/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/whohas/Makefile b/apps/whohas/Makefile index 1436fb13..c07c400d 100644 --- a/apps/whohas/Makefile +++ b/apps/whohas/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/whois/Makefile b/apps/whois/Makefile index abb460ba..6a1f25d7 100644 --- a/apps/whois/Makefile +++ b/apps/whois/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/whoisrouter/Makefile b/apps/whoisrouter/Makefile index 005128b8..acc1c2da 100644 --- a/apps/whoisrouter/Makefile +++ b/apps/whoisrouter/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/whoisrouter/main.c b/apps/whoisrouter/main.c index f993cd1e..c4f9e43b 100644 --- a/apps/whoisrouter/main.c +++ b/apps/whoisrouter/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet Who-Is-Router-To-Network + * @brief command line tool that sends a BACnet Who-Is-Router-To-Network * message for one or more networks, and prints any I-Am-Router-To-Network * responses received. This is useful for finding routers on the network. * @author Steve Karg diff --git a/apps/writebdt/Makefile b/apps/writebdt/Makefile index 262efe7d..cb2c6f62 100644 --- a/apps/writebdt/Makefile +++ b/apps/writebdt/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/writebdt/main.c b/apps/writebdt/main.c index 1175db10..7c7d3529 100644 --- a/apps/writebdt/main.c +++ b/apps/writebdt/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that sends a BACnet BVLC message + * @brief command line tool that sends a BACnet BVLC message * Write-Broadcast-Distribution-Table to a BBMD on the network, * and prints the result code received. This is useful for * configuring the BBMD on the network. diff --git a/apps/writefile/Makefile b/apps/writefile/Makefile index ea71f422..91dd86c1 100644 --- a/apps/writefile/Makefile +++ b/apps/writefile/Makefile @@ -37,4 +37,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/writefile/main.c b/apps/writefile/main.c index bb281cb6..d7dd3767 100644 --- a/apps/writefile/main.c +++ b/apps/writefile/main.c @@ -1,6 +1,6 @@ /** * @file - * @brief command line tool that uses BACnet AtomicWriteFile service + * @brief command line tool that uses BACnet AtomicWriteFile service * to send a local file to a another device on the network. * This tool sends the file in chunks to the target device. * @author Steve Karg diff --git a/apps/writeprop/Makefile b/apps/writeprop/Makefile index 79ee5472..d38bbc95 100644 --- a/apps/writeprop/Makefile +++ b/apps/writeprop/Makefile @@ -40,4 +40,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/writeprop/main.c b/apps/writeprop/main.c index 26bdf40a..bb85631e 100644 --- a/apps/writeprop/main.c +++ b/apps/writeprop/main.c @@ -1,7 +1,7 @@ /** * @file - * @brief command line tool that uses BACnet WriteProperty service - * message to write object property values to another device on + * @brief command line tool that uses BACnet WriteProperty service + * message to write object property values to another device on * the network and prints an acknowledgment or error response of * this confirmed service request. This is useful for testing * the WriteProperty service. diff --git a/apps/writepropm/Makefile b/apps/writepropm/Makefile index 2f4a092c..b12a499e 100644 --- a/apps/writepropm/Makefile +++ b/apps/writepropm/Makefile @@ -40,4 +40,3 @@ clean: .PHONY: include include: .depend - diff --git a/apps/writepropm/main.c b/apps/writepropm/main.c index c17441cf..2b6b356c 100644 --- a/apps/writepropm/main.c +++ b/apps/writepropm/main.c @@ -1,7 +1,7 @@ /** * @file - * @brief command line tool that uses BACnet WritePropertyMultiple service - * message to write object property values to another device on + * @brief command line tool that uses BACnet WritePropertyMultiple service + * message to write object property values to another device on * the network and prints an acknowledgment or error response of * this confirmed service request. This is useful for testing * the WritePropertyMultiple service. diff --git a/aptfile b/aptfile index 53c2a989..49fa6e2e 100755 --- a/aptfile +++ b/aptfile @@ -36,7 +36,7 @@ package "gdb-multiarch" # install AVR compiler and debugging tools package "gcc-avr" package "avarice" -package "avr-libc" +package "avr-libc" package "avrdude" package "gdb-avr" package "avrdude-doc" @@ -51,4 +51,3 @@ package "codespell" # you can also execute arbitrary bash echo "🚀 ALL GOOD TO GO" - diff --git a/bin/bacrpd.bat b/bin/bacrpd.bat index d95bfa98..965e4080 100644 --- a/bin/bacrpd.bat +++ b/bin/bacrpd.bat @@ -15,7 +15,7 @@ bacrp.exe %1 8 %1 139 bacrp.exe %1 8 %1 97 bacrp.exe %1 8 %1 96 bacrp.exe %1 8 %1 76 0 -bacrp.exe %1 8 %1 76 +bacrp.exe %1 8 %1 76 bacrp.exe %1 8 %1 62 bacrp.exe %1 8 %1 107 bacrp.exe %1 8 %1 11 diff --git a/bin/bacrpd.sh b/bin/bacrpd.sh index f62a3f00..932a14dd 100755 --- a/bin/bacrpd.sh +++ b/bin/bacrpd.sh @@ -6,7 +6,7 @@ OPTIONAL=0 usage() { echo "usage: $PROG [OPTIONS] <> [ <> ... ] - + Will return Required and Optional property values from the requested device. @@ -32,116 +32,114 @@ done shift $(($OPTIND -1)) if [ $# -eq 0 ] || [ "$1" = "" ] ; then - usage - exit + usage + exit fi run_test() { - echo -e -e "Test: Read Required Properties of Device Object $1\r" - echo -n "OBJECT IDENTIFIER:" - ./bacrp $1 8 $1 75 - echo -n "OBJECT NAME:" - ./bacrp $1 8 $1 77 - echo -n "OBJECT TYPE:" - ./bacrp $1 8 $1 79 - echo -n "SYSTEM STATUS:" - ./bacrp $1 8 $1 112 - echo -n "VENDOR NAME:" - ./bacrp $1 8 $1 121 - echo -n "VENDOR IDENTIFIER:" - ./bacrp $1 8 $1 120 - echo -n "MODEL NAME:" - ./bacrp $1 8 $1 70 - echo -n "FIRMWARE REVISION:" - ./bacrp $1 8 $1 44 - echo -n "APPLICATION SOFTWARE VERSION:" - ./bacrp $1 8 $1 12 - echo -n "PROTOCOL VERSION:" - ./bacrp $1 8 $1 98 - echo -n "PROTOCOL REVISION:" - ./bacrp $1 8 $1 139 - echo -n "PROTOCOL SERVICES SUPPORTED:" - ./bacrp $1 8 $1 97 - echo -n "OBJECT TYPES SUPPORTED:" - ./bacrp $1 8 $1 96 - echo -n "OBJECT LIST LENGTH:" - ./bacrp $1 8 $1 76 0 - echo -n "OBJECT LIST:" - ./bacrp $1 8 $1 76 - echo -n "MAX APDU LENGTH ACCEPTED:" - ./bacrp $1 8 $1 62 - echo -n "SEGMENTATION SUPPORTED:" - ./bacrp $1 8 $1 107 - echo -n "APDU TIMEOUT:" - ./bacrp $1 8 $1 11 - echo -n "NUMGER OF APDU ENTRIES:" - ./bacrp $1 8 $1 73 - echo -n "DEVICE ADDRESS BINDING:" - ./bacrp $1 8 $1 30 - echo -n "DATABASE REVISION:" - ./bacrp $1 8 $1 155 - if [ $OPTIONAL -eq 1 ] ; then - echo -e "Test: Read Optional Properties of Device Object $1\r" - echo -n "LOCATION:" - ./bacrp $1 8 $1 58 - echo -n "DESCRIPTION:" - ./bacrp $1 8 $1 28 - echo -n "MAX SEGMENTS SUPPORTED:" - ./bacrp $1 8 $1 167 - echo -n "VT CLASSES SUPPORTED:" - ./bacrp $1 8 $1 122 - echo -n "ACTIVE VT SESSIONS:" - ./bacrp $1 8 $1 5 - echo -n "LOCAL TIME:" - ./bacrp $1 8 $1 57 - echo -n "LOCAL DATE:" - ./bacrp $1 8 $1 56 - echo -n "UTC OFFSET:" - ./bacrp $1 8 $1 119 - echo -n "DAYLIGHT SAVINGS STATUS:" - ./bacrp $1 8 $1 24 - echo -n "APDU SEGMENT TIMEOUT:" - ./bacrp $1 8 $1 10 - echo -n "LIST OF SESSION KEYS:" - ./bacrp $1 8 $1 55 - echo -n "TIME SYNCHRONIZATION RECIPIENTS:" - ./bacrp $1 8 $1 116 - echo -n "MAX MASTER:" - ./bacrp $1 8 $1 64 - echo -n "MAX INFO FRAMES:" - ./bacrp $1 8 $1 63 - echo -n "ACK REQUIRED:" - ./bacrp $1 8 $1 1 - echo -n "CONFIGURATION FILES:" - ./bacrp $1 8 $1 154 - echo -n "LAST RESTORE TIME:" - ./bacrp $1 8 $1 157 - echo -n "BACKUP FAILURE TIMEOUT:" - ./bacrp $1 8 $1 153 - echo -n "ACTIVE COV SUBSCRIPTIONS:" - ./bacrp $1 8 $1 152 - echo -n "SLAVE PROXY ENABLE:" - ./bacrp $1 8 $1 172 - echo -n "MANUAL SLAVE ADDRESS BINDING:" - ./bacrp $1 8 $1 170 - echo -n "AUTO SLAVE DISCOVERY:" - ./bacrp $1 8 $1 169 - echo -n "SLAVE ADDRESS BINDING:" - ./bacrp $1 8 $1 171 - echo -n "PROFILE NAME:" - ./bacrp $1 8 $1 168 - fi - echo -e " \r" + echo -e -e "Test: Read Required Properties of Device Object $1\r" + echo -n "OBJECT IDENTIFIER:" + ./bacrp $1 8 $1 75 + echo -n "OBJECT NAME:" + ./bacrp $1 8 $1 77 + echo -n "OBJECT TYPE:" + ./bacrp $1 8 $1 79 + echo -n "SYSTEM STATUS:" + ./bacrp $1 8 $1 112 + echo -n "VENDOR NAME:" + ./bacrp $1 8 $1 121 + echo -n "VENDOR IDENTIFIER:" + ./bacrp $1 8 $1 120 + echo -n "MODEL NAME:" + ./bacrp $1 8 $1 70 + echo -n "FIRMWARE REVISION:" + ./bacrp $1 8 $1 44 + echo -n "APPLICATION SOFTWARE VERSION:" + ./bacrp $1 8 $1 12 + echo -n "PROTOCOL VERSION:" + ./bacrp $1 8 $1 98 + echo -n "PROTOCOL REVISION:" + ./bacrp $1 8 $1 139 + echo -n "PROTOCOL SERVICES SUPPORTED:" + ./bacrp $1 8 $1 97 + echo -n "OBJECT TYPES SUPPORTED:" + ./bacrp $1 8 $1 96 + echo -n "OBJECT LIST LENGTH:" + ./bacrp $1 8 $1 76 0 + echo -n "OBJECT LIST:" + ./bacrp $1 8 $1 76 + echo -n "MAX APDU LENGTH ACCEPTED:" + ./bacrp $1 8 $1 62 + echo -n "SEGMENTATION SUPPORTED:" + ./bacrp $1 8 $1 107 + echo -n "APDU TIMEOUT:" + ./bacrp $1 8 $1 11 + echo -n "NUMGER OF APDU ENTRIES:" + ./bacrp $1 8 $1 73 + echo -n "DEVICE ADDRESS BINDING:" + ./bacrp $1 8 $1 30 + echo -n "DATABASE REVISION:" + ./bacrp $1 8 $1 155 + if [ $OPTIONAL -eq 1 ] ; then + echo -e "Test: Read Optional Properties of Device Object $1\r" + echo -n "LOCATION:" + ./bacrp $1 8 $1 58 + echo -n "DESCRIPTION:" + ./bacrp $1 8 $1 28 + echo -n "MAX SEGMENTS SUPPORTED:" + ./bacrp $1 8 $1 167 + echo -n "VT CLASSES SUPPORTED:" + ./bacrp $1 8 $1 122 + echo -n "ACTIVE VT SESSIONS:" + ./bacrp $1 8 $1 5 + echo -n "LOCAL TIME:" + ./bacrp $1 8 $1 57 + echo -n "LOCAL DATE:" + ./bacrp $1 8 $1 56 + echo -n "UTC OFFSET:" + ./bacrp $1 8 $1 119 + echo -n "DAYLIGHT SAVINGS STATUS:" + ./bacrp $1 8 $1 24 + echo -n "APDU SEGMENT TIMEOUT:" + ./bacrp $1 8 $1 10 + echo -n "LIST OF SESSION KEYS:" + ./bacrp $1 8 $1 55 + echo -n "TIME SYNCHRONIZATION RECIPIENTS:" + ./bacrp $1 8 $1 116 + echo -n "MAX MASTER:" + ./bacrp $1 8 $1 64 + echo -n "MAX INFO FRAMES:" + ./bacrp $1 8 $1 63 + echo -n "ACK REQUIRED:" + ./bacrp $1 8 $1 1 + echo -n "CONFIGURATION FILES:" + ./bacrp $1 8 $1 154 + echo -n "LAST RESTORE TIME:" + ./bacrp $1 8 $1 157 + echo -n "BACKUP FAILURE TIMEOUT:" + ./bacrp $1 8 $1 153 + echo -n "ACTIVE COV SUBSCRIPTIONS:" + ./bacrp $1 8 $1 152 + echo -n "SLAVE PROXY ENABLE:" + ./bacrp $1 8 $1 172 + echo -n "MANUAL SLAVE ADDRESS BINDING:" + ./bacrp $1 8 $1 170 + echo -n "AUTO SLAVE DISCOVERY:" + ./bacrp $1 8 $1 169 + echo -n "SLAVE ADDRESS BINDING:" + ./bacrp $1 8 $1 171 + echo -n "PROFILE NAME:" + ./bacrp $1 8 $1 168 + fi + echo -e " \r" } while [ $# -gt 0 ] ; do - ID=$(( $1 + 0 )) - shift - if [ $ID -eq 0 ] ; then - echo "ERROR: Device ID must be an integer!! [ID=$ID]" >&2 - fi - run_test $ID + ID=$(( $1 + 0 )) + shift + if [ $ID -eq 0 ] ; then + echo "ERROR: Device ID must be an integer!! [ID=$ID]" >&2 + fi + run_test $ID done - - diff --git a/bin/bbmdepics.sh b/bin/bbmdepics.sh index 5531f403..eee0e4ed 100755 --- a/bin/bbmdepics.sh +++ b/bin/bbmdepics.sh @@ -18,8 +18,8 @@ declare -A device # capture the devices from the command line for d in "$@" do - device[${port_key}]=${d} - epics_port_max=$((port_key++)) + device[${port_key}]=${d} + epics_port_max=$((port_key++)) done # spawn the epics clients @@ -42,4 +42,3 @@ for pid in ${pids[*]}; do done killall bacserv - diff --git a/bin/bvlc.bat b/bin/bvlc.bat index a8d26113..7e94cc04 100644 --- a/bin/bvlc.bat +++ b/bin/bvlc.bat @@ -11,4 +11,3 @@ echo they register as a Foreign Device to it. @echo on set BACNET_BBMD_PORT=47808 set BACNET_BBMD_ADDRESS=%1 - diff --git a/bin/router-mstp.sh b/bin/router-mstp.sh index ac496f38..11ccf06a 100755 --- a/bin/router-mstp.sh +++ b/bin/router-mstp.sh @@ -50,4 +50,4 @@ export BACNET_ROUTER_DEBUG echo "BACNET_ROUTER_DEBUG=$BACNET_ROUTER_DEBUG" echo Launching new shell using the BACnet Router environment... -/bin/bash \ No newline at end of file +/bin/bash diff --git a/cmake-format.yaml b/cmake-format.yaml index ea45cabf..85a93c9d 100644 --- a/cmake-format.yaml +++ b/cmake-format.yaml @@ -19,4 +19,4 @@ max_subargs_per_line: 2 max_pargs_hwrap: 2 -max_subgroups_hwrap: 2 \ No newline at end of file +max_subgroups_hwrap: 2 diff --git a/comment.sh b/comment.sh index a9c1dfeb..0ab0ecf6 100755 --- a/comment.sh +++ b/comment.sh @@ -23,4 +23,3 @@ do ${CONVERTER} ${filename} > ${TEMPFILE} mv ${TEMPFILE} ${filename} done - diff --git a/configure b/configure index 56496b91..78d9ba37 100755 --- a/configure +++ b/configure @@ -1,3 +1,2 @@ #!/bin/sh # Nothing to do - diff --git a/doc/README.developer b/doc/README.developer index b0f38c96..b100f250 100644 --- a/doc/README.developer +++ b/doc/README.developer @@ -40,8 +40,8 @@ Adding additional services is a matter of adding the encoding and decoding for the service into/from meaningful data, and I like to add unit testing, a demo handler and send function, as well as a demo command line example. -For each service that you add to your project or makefile, you will need to -add a handler and possibly a sending function. There are example handlers +For each service that you add to your project or makefile, you will need to +add a handler and possibly a sending function. There are example handlers and send functions for all the services that the stack supports: * demo/handler/h_alarm_ack.c - Alarm ACK service handler example @@ -121,7 +121,7 @@ example object files in the BACnet stack include: * demo/object/lsp.c - life safety point object demo * demo/object/mso.c - multi-step output object demo -The BACnet stack includes a number of core files that handle the service +The BACnet stack includes a number of core files that handle the service packets that come in from the datalink layer. The core files include: * apdu.c - handles dispatching the services to the proper handlers @@ -134,11 +134,11 @@ packets that come in from the datalink layer. The core files include: * demo/handler/h_npdu.c - handles dispatching of the network message to the apdu dispatcher. -The DataLink Layer controls orderly access to the physical medium. -The stack currently supports one datalink layer at a time, and uses a -macro defined in config.h or your makefile/project to choose the macro -functions defined in datalink.h. The following files are used for the -datalink handling in this BACnet stack, and may have to be developed for +The DataLink Layer controls orderly access to the physical medium. +The stack currently supports one datalink layer at a time, and uses a +macro defined in config.h or your makefile/project to choose the macro +functions defined in datalink.h. The following files are used for the +datalink handling in this BACnet stack, and may have to be developed for your particular hardware: * bip.c - BACnet/IP functionality - depends on bip_init.c in port/xx @@ -149,15 +149,15 @@ your particular hardware: * arcnet.c - ARCNET datalink layer functionality, in port/xx * ethernet.c - BACnet Ethernet datalink layer functionality, in port/xx -There are a dozen demonstration applications in the demo directory, -along with many demonstation objects and handlers. All the demos accept -command line options and have been tested under Win32 and Linux. -There is a makefile in the respective demo directory for Linux and -for Borland C++ compilers, and a master makefile at the root level +There are a dozen demonstration applications in the demo directory, +along with many demonstation objects and handlers. All the demos accept +command line options and have been tested under Win32 and Linux. +There is a makefile in the respective demo directory for Linux and +for Borland C++ compilers, and a master makefile at the root level (Makefile=Linux, makefile.b32=Borland). -The simplest demonstration is to run demo/server/bacserv on one PC (or -virtual PC), and run the other client demonstration applications one -at time on another PC (or virtual PC). Monitor the network communcations -using Wireshark protocol analyzer, or test the BACnet server using +The simplest demonstration is to run demo/server/bacserv on one PC (or +virtual PC), and run the other client demonstration applications one +at time on another PC (or virtual PC). Monitor the network communcations +using Wireshark protocol analyzer, or test the BACnet server using BACnet Visual Test Shell VTS3. diff --git a/doc/README.doxygen b/doc/README.doxygen index bb869a74..ffd2e954 100644 --- a/doc/README.doxygen +++ b/doc/README.doxygen @@ -1,38 +1,38 @@ To build the Doxygen documentation for the BACnet Stack: -- Install doxygen as described at +- Install doxygen as described at http://www.stack.nl/~dimitri/doxygen/install.html -- If you want to generate call graphs (recommended - very nice! - but takes - signficantly longer to build the documents), you must also have +- If you want to generate call graphs (recommended - very nice! - but takes + signficantly longer to build the documents), you must also have graphviz installed. - To build from the command line, just enter doxygen BACnet-stack.doxyfile - Output is built in doc/output/html, and there is a convenient starting point at doc/output/BAC_stack.html. -- If you use Eclipse, +- If you use Eclipse, - install the eClox plugin to support doxygen within Eclipse - Build the documents by right clicking on BACnet-stack.doxyfile, and selecting "@ Build Documentation" -- Feel free to tweak the doxygen output to your tastes, interests, and +- Feel free to tweak the doxygen output to your tastes, interests, and choice of output formats. - The Latex output could be converted into a PDF (see doxygen manual, and google for your issues). - I have tried the PDF, man, and RTF outputs and not liked the results for any of them (500+ pages). I recommend the HTML output, as it is well organized and has an obvious flow, both of which the others lack. - + The doxygen output is not checked into this project because it consists of - over 5,000 little files (for HTML with call graphs), and it is easily + over 5,000 little files (for HTML with call graphs), and it is easily regenerated. - + For speed, the function call graphs are not enabled in the SVN version of the doxyfile. To enable them, edit BACnet-stack.doxyfile (with a - text editor or with GUI-based editors in Eclipse or using the - doxywizard application) and change + text editor or with GUI-based editors in Eclipse or using the + doxywizard application) and change HAVE_DOT = YES CALLER_GRAPH = YES - - -Following the doxygen website's lead, I found the D-Bus project to be a good + + +Following the doxygen website's lead, I found the D-Bus project to be a good example of the sort of documentation we needed to have here. http://dbus.freedesktop.org/doc/dbus/api/html/index.html @@ -48,7 +48,7 @@ whitespace, like a function per page, ~600 pages, not usefully organized). Ditto for RTF and man output. I could not find a linux-based compiled help compiler, so I resorted to using -Microsoft's. They seem to be pushing some later generation tools, and +Microsoft's. They seem to be pushing some later generation tools, and maybe someone knows if that's a good thing, but I opted for their now fairly old HTML Help Workshop, version 4.74. Doxygen nicely arranges the html input, so pretty much all you have to do diff --git a/doc/README.faq b/doc/README.faq index 98e535d8..343820a3 100644 --- a/doc/README.faq +++ b/doc/README.faq @@ -158,4 +158,3 @@ Q-18: I have downloaded the BACnet stack but can't get Who-Is or EPICS applicati A-18: Firewalls on modern OS block incoming and outgoing network traffic and require you to 'allow' the port that BACnet/IP uses. To allow the default BACnet/IP UDP port 47808 Linux with UFW: $ sudo ufw allow 47808/udp - diff --git a/doc/README.msvs b/doc/README.msvs index d8a037c5..4a34905e 100644 --- a/doc/README.msvs +++ b/doc/README.msvs @@ -5,4 +5,3 @@ Q1: Cannot open include file: 'winsock2.h' A1: Install the Microsoft Platform SDK: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx - diff --git a/doc/README.sloc b/doc/README.sloc index 3c2cfd78..24c90e25 100644 --- a/doc/README.sloc +++ b/doc/README.sloc @@ -1,4 +1,4 @@ -SLOC Directory SLOC-by-Language (Sorted) +SLOC Directory SLOC-by-Language (Sorted) 118011 ports ansic=101988,asm=10755,cpp=4651,xml=463,sh=154 78632 src_bacnet ansic=78632 28295 test ansic=27663,cpp=598,xml=34 diff --git a/doc/README.todo b/doc/README.todo index d32a445c..b68e769f 100644 --- a/doc/README.todo +++ b/doc/README.todo @@ -29,4 +29,4 @@ X. Change WhoIs demo to list all I-Am's received such that duplicate IDs with different MAC addresses can be detected. Y. Add tsm_alloc to allocate memory and invoke ID for sending. Z. Make alternate TSM that handles segmentation. -AA. Create debug.c module for PC ports which replace printf and fix line end. \ No newline at end of file +AA. Create debug.c module for PC ports which replace printf and fix line end. diff --git a/doc/README.ubuntu b/doc/README.ubuntu index 42708fe0..cb8ecc70 100644 --- a/doc/README.ubuntu +++ b/doc/README.ubuntu @@ -11,4 +11,4 @@ $ sudo apt-get install clang-tools $ sudo apt-get install clang-format $ sudo apt-get install sloccount $ sudo apt-get install liwc -$ sudo apt-get install tofrodos \ No newline at end of file +$ sudo apt-get install tofrodos diff --git a/doc/README.utils b/doc/README.utils index a3fe5dd2..f2b6f369 100644 --- a/doc/README.utils +++ b/doc/README.utils @@ -1,6 +1,6 @@ There are a dozen or so demo applications that are built with the default makefiles. These demo applications are -copied to the bin/ directory. They can be used in +copied to the bin/ directory. They can be used in scripts and batch files to test BACnet devices or query information on the BACnet network, as well as simulate a BACnet device. @@ -11,14 +11,14 @@ BACNET_IFACE - interface to use for the datalink layer For Linux, this is something like eth0 or /dev/ttyS0. For Windows, this is something like 192.168.0.1 or COM4 Defaults to NULL. - -BACNET_IP_PORT - BACnet/IP port number. + +BACNET_IP_PORT - BACnet/IP port number. Defaults to 47808. BACNET_BBMD_PORT - BACnet/IP BBMD port number. Defaults to 47808. -BACNET_BBMD_TIMETOLIVE - BACnet/IP BBMD time-to-live seconds. +BACNET_BBMD_TIMETOLIVE - BACnet/IP BBMD time-to-live seconds. Defaults to 0xFFFF. BACNET_BBMD_ADDRESS - dotted IP address or domain name of BBMD. @@ -26,17 +26,17 @@ BACNET_BBMD_ADDRESS - dotted IP address or domain name of BBMD. BACNET_MAX_INFO_FRAMES - BACnet MS/TP max-info-frames parameter. Defaults to 127. - -BACNET_MSTP_BAUD - BACnet MS/TP baud rate. + +BACNET_MSTP_BAUD - BACnet MS/TP baud rate. Defaults to 38400. -BACNET_MSTP_MAC - BACnet MS/TP MAC address. +BACNET_MSTP_MAC - BACnet MS/TP MAC address. Defaults to 127. -The demo client applications can also perform static -address binding using the file "address_cache" in the +The demo client applications can also perform static +address binding using the file "address_cache" in the directory where the application is called (defined -in src/address.c file). The format of the address_cache +in src/address.c file). The format of the address_cache is a line by line of device ids and addresses: 55555 AC:10:56:06:BA:C0 26001 19 50 where: @@ -45,4 +45,3 @@ AC:10:56:06:BA:C0=MAC address (router address) in hex 26001=DNET network number in decimal 19=DADR MAC address in hex. Use colon to separate multibyte address. 50=Max APDU - diff --git a/doc/code-standard.txt b/doc/code-standard.txt index af4a23ef..56542e11 100644 --- a/doc/code-standard.txt +++ b/doc/code-standard.txt @@ -34,10 +34,10 @@ for C++ headers and converts them. Don't initialize variables in their declaration with non-constant values. Not all compilers support this. E.g. don't use - uint32_t i = somearray[2]; + uint32_t i = somearray[2]; use - uint32_t i; - i = somearray[2]; + uint32_t i; + i = somearray[2]; instead. Don't use zero-length arrays; not all compilers support them. If an @@ -76,43 +76,43 @@ unsigned integers. Don't use a label without a statement following it. For example, something such as - if (...) { + if (...) { - ... + ... - done: - } + done: + } will not work with all compilers - you have to do - if (...) { + if (...) { - ... + ... - done: - ; - } + done: + ; + } with some statements, even if it's a null statement, after the label. Don't use "bzero()", "bcopy()", or "bcmp()"; instead, use the ANSI C routines - "memset()" (with zero as the second argument, so that it sets - all the bytes to zero); + "memset()" (with zero as the second argument, so that it sets + all the bytes to zero); - "memcpy()" or "memmove()" (note that the first and second - arguments to "memcpy()" are in the reverse order to the - arguments to "bcopy()"; note also that "bcopy()" is typically - guaranteed to work on overlapping memory regions, while - "memcpy()" isn't, so if you may be copying from one region to a - region that overlaps it, use "memmove()", not "memcpy()" - but - "memcpy()" might be faster as a result of not guaranteeing - correct operation on overlapping memory regions); + "memcpy()" or "memmove()" (note that the first and second + arguments to "memcpy()" are in the reverse order to the + arguments to "bcopy()"; note also that "bcopy()" is typically + guaranteed to work on overlapping memory regions, while + "memcpy()" isn't, so if you may be copying from one region to a + region that overlaps it, use "memmove()", not "memcpy()" - but + "memcpy()" might be faster as a result of not guaranteeing + correct operation on overlapping memory regions); - and "memcmp()" (note that "memcmp()" returns 0, 1, or -1, doing - an ordered comparison, rather than just returning 0 for "equal" - and 1 for "not equal", as "bcmp()" does). + and "memcmp()" (note that "memcmp()" returns 0, 1, or -1, doing + an ordered comparison, rather than just returning 0 for "equal" + and 1 for "not equal", as "bcmp()" does). Not all platforms necessarily have "bzero()"/"bcopy()"/"bcmp()", and those that do might not declare them in the header file on which they're @@ -166,25 +166,25 @@ file is to be created if it doesn't exist), and OR in the O_BINARY flag. That flag is not present on most, if not all, UNIX systems, so you must also do - #ifndef O_BINARY - #define O_BINARY 0 - #endif + #ifndef O_BINARY + #define O_BINARY 0 + #endif to properly define it for UNIX (it's not necessary on UNIX). Don't use forward declarations of static arrays without a specified size in a fashion such as this: - static const value_string foo_vals[]; + static const value_string foo_vals[]; - ... + ... - static const value_string foo_vals[] = { - { 0, "Red" }, - { 1, "Green" }, - { 2, "Blue" }, - { 0, NULL } - }; + static const value_string foo_vals[] = { + { 0, "Red" }, + { 1, "Green" }, + { 2, "Blue" }, + { 0, NULL } + }; as some compilers will reject the first of those statements. Instead, initialize the array at the point at which it's first declared, so that @@ -194,11 +194,11 @@ Don't put declarations in the middle of a block; put them before all code. Not all compilers support declarations in the middle of code, such as - int i; + int i; - i = foo(); + i = foo(); - int j; + int j; For #define names and enum member names, prefix the names with a tag so as to avoid collisions with other names - this might be more of an issue @@ -207,20 +207,20 @@ OPTIONAL. Don't use "variadic macros", such as - #define DBG(format, args...) fprintf(stderr, format, ## args) + #define DBG(format, args...) fprintf(stderr, format, ## args) as not all C compilers support them. Use macros that take a fixed number of arguments, such as - #define DBG0(format) fprintf(stderr, format) - #define DBG1(format, arg1) fprintf(stderr, format, arg1) - #define DBG2(format, arg1, arg2) fprintf(stderr, format, arg1, arg2) + #define DBG0(format) fprintf(stderr, format) + #define DBG1(format, arg1) fprintf(stderr, format, arg1) + #define DBG2(format, arg1, arg2) fprintf(stderr, format, arg1, arg2) - ... + ... or something such as - #define DBG(args) printf args + #define DBG(args) printf args Instead of tmpnam(), use mkstemp(). tmpnam is insecure and should not be used any more. Note: mkstemp does not accept NULL as a parameter. diff --git a/doc/htdocs/index.html b/doc/htdocs/index.html index b108ac2e..e0c4e610 100644 --- a/doc/htdocs/index.html +++ b/doc/htdocs/index.html @@ -1,8 +1,8 @@ - - BACnet stack - open source BACnet protocol stack + + BACnet stack - open source BACnet protocol stack diff --git a/doc/man/bacrp.1 b/doc/man/bacrp.1 index 2d537438..7507090c 100644 --- a/doc/man/bacrp.1 +++ b/doc/man/bacrp.1 @@ -50,7 +50,7 @@ $ bacrp 123 1 101 85 If you want read the Priority-Array of Analog Output 101 in Device 123, you could send the following command: $ bacrp 123 1 101 87 -If you want read the length of Priority-Array of Analog +If you want read the length of Priority-Array of Analog Output 101 in Device 123, you could send the following command: $ bacrp 123 1 101 87 0 @@ -91,7 +91,7 @@ The default Max-Master is 127. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_BAUD If non-null, a value baud rate of 9600, 19200, 38400, 57600, -and 115200. +and 115200. The default baud rate is 9600. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_MAC diff --git a/doc/man/bacwi.1 b/doc/man/bacwi.1 index ae167399..dfc2b485 100644 --- a/doc/man/bacwi.1 +++ b/doc/man/bacwi.1 @@ -13,7 +13,7 @@ bacwi \- send BACnet WhoIs service request to BACnet devices an I-Am service response from one or more BACnet devices on the network. I-Am responses include a Device Object-Identifier, a Vendor-Identifier, a Max-APDU size, and segmentation information. -By its nature, I-Am responses include the source address and +By its nature, I-Am responses include the source address and any network layer information necessary to communicate with the device. @@ -70,7 +70,7 @@ The default Max-Master is 127. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_BAUD If non-null, a value baud rate of 9600, 19200, 38400, 57600, -and 115200. +and 115200. The default baud rate is 9600. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_MAC @@ -100,4 +100,4 @@ Steve Karg .BR bacucov (1), .BR bacwh (1), .BR bacwp (1), -.BR address_cache (5) \ No newline at end of file +.BR address_cache (5) diff --git a/doc/man/bacwp.1 b/doc/man/bacwp.1 index 372df4dc..b64785cb 100644 --- a/doc/man/bacwp.1 +++ b/doc/man/bacwp.1 @@ -10,7 +10,7 @@ bacwp \- send BACnet WriteProperty service request to a BACnet device .SH DESCRIPTION .B bacrp uses the BACnet WriteProperty service request to write -a property value to a BACnet device on the network. WhoIs and +a property value to a BACnet device on the network. WhoIs and I-Am are used for device binding. A simple Ack or error message is returned to stdio. @@ -40,21 +40,21 @@ Present Value property, the property is 85. .IP "priority" This parameter is used for setting the priority of the -write. If Priority 0 is given, no priority is sent. The BACnet -standard states that the value is written at the lowest +write. If Priority 0 is given, no priority is sent. The BACnet +standard states that the value is written at the lowest priority (16) if the object property supports priorities when no priority is sent. .IP "index" This integer parameter is the index number of an array. -If the property is a BACnetARRAY and writable, individual -elements can be written. If this parameter value is -1, +If the property is a BACnetARRAY and writable, individual +elements can be written. If this parameter value is -1, it is omitted when writing to the property. .IP "tag" -Tag is the integer value of the enumeration BACNET_APPLICATION_TAG +Tag is the integer value of the enumeration BACNET_APPLICATION_TAG in bacenum.h. It is the data type of the value that you are -writing. For example, if you were writing a REAL value, you would +writing. For example, if you were writing a REAL value, you would use a tag of 4. Context tags are created using two tags in a row. The context tag is preceded by a C. Ctag tag. C2 4 creates a context 2 tagged REAL. @@ -62,16 +62,16 @@ is preceded by a C. Ctag tag. C2 4 creates a context 2 tagged REAL. .IP "value" The value is an ASCII representation of some type of data that you are writing. It is encoded using the tag information provided. For -example, if you were writing a REAL value of 100.0, you would use +example, if you were writing a REAL value of 100.0, you would use 100.0 as the value. If you were writing an Object-Identifier such as Device object 1, you would use 8:1 as the value. If you were -writing a Boolean, a value of 0 would indicate false, and a non-zero -value would indicate true. +writing a Boolean, a value of 0 would indicate false, and a non-zero +value would indicate true. .SH BACnet Tags Here is a brief overview of BACnet property and tags: -Certain properties are expected to be written with certain +Certain properties are expected to be written with certain application tags, so you probably need to know which ones to use with each property of each object. It is almost safe to say that given a property and an object and a table, the tag could be looked @@ -127,7 +127,7 @@ The default Max-Master is 127. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_BAUD If non-null, a value baud rate of 9600, 19200, 38400, 57600, -and 115200. +and 115200. The default baud rate is 9600. Used for BACnet MS/TP datalink only. .IP BACNET_MSTP_MAC diff --git a/license/GPL-2.0 b/license/GPL-2.0 index 9c60f348..75969beb 100644 --- a/license/GPL-2.0 +++ b/license/GPL-2.0 @@ -17,15 +17,15 @@ Usage-Guide: SPDX-License-Identifier: GPL-2.0-or-later License-Text: - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -74,8 +74,8 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE + + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains @@ -129,7 +129,7 @@ above, provided that you also meet all of these conditions: License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -187,7 +187,7 @@ access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -244,7 +244,7 @@ impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -274,7 +274,7 @@ make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN @@ -296,9 +296,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -356,4 +356,4 @@ This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General -Public License instead of this +Public License instead of this diff --git a/license/readme.txt b/license/readme.txt index 61a05e97..d77fd4e5 100644 --- a/license/readme.txt +++ b/license/readme.txt @@ -1,11 +1,11 @@ Licenses for the BACnet Stack at SourceForge -This BACnet protocol stack implementation is specifically -designed for the embedded BACnet appliance, using a GPL with -exception license (like eCos), which means that any changes +This BACnet protocol stack implementation is specifically +designed for the embedded BACnet appliance, using a GPL with +exception license (like eCos), which means that any changes to the core code that are distributed must be made available in accordance with section (3) of the GNU General Public License. -However, the BACnet library can be linked to proprietary code +However, the BACnet library can be linked to proprietary code without the proprietary code becoming GPL. Each file that is subject to the GPL uses the following text comment @@ -19,9 +19,9 @@ at the top of the file: * *********************************************************************/ -The example and demo files are licensed using an MIT style -license, officially called an Expat License by GNU, and is -compatible with the GPL. The files subject to this license +The example and demo files are licensed using an MIT style +license, officially called an Expat License by GNU, and is +compatible with the GPL. The files subject to this license include the following text comment at the top of the file: /************************************************************************** diff --git a/ports/arduino_uno/bip.c b/ports/arduino_uno/bip.c index 59948d56..3061ce80 100644 --- a/ports/arduino_uno/bip.c +++ b/ports/arduino_uno/bip.c @@ -202,7 +202,7 @@ int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ * * @param src [out] Source of the packet - who should receive any response. * @param pdu [out] A buffer to hold the PDU portion of the received packet, - * after the BVLC portion has been stripped + * after the BVLC portion has been stripped * off. * @param max_pdu [in] Size of the pdu[] buffer. * @param timeout [in] The number of milliseconds to wait for a packet. diff --git a/ports/at91sam7s/.gdbinit b/ports/at91sam7s/.gdbinit index c4ada8f8..63413afa 100644 --- a/ports/at91sam7s/.gdbinit +++ b/ports/at91sam7s/.gdbinit @@ -13,4 +13,3 @@ monitor long 0xfffffc30 0x7 monitor sleep 100 monitor long 0xfffffd08 0xa5000401 monitor sleep 100 - diff --git a/ports/at91sam7s/CMakeLists.txt b/ports/at91sam7s/CMakeLists.txt index 44afa125..2e4fb391 100644 --- a/ports/at91sam7s/CMakeLists.txt +++ b/ports/at91sam7s/CMakeLists.txt @@ -200,13 +200,13 @@ target_compile_definitions(${EXECUTABLE} PRIVATE target_compile_options(${EXECUTABLE} PRIVATE -Wall -Wextra -pedantic - -Wfloat-equal -Wconversion -Wredundant-decls + -Wfloat-equal -Wconversion -Wredundant-decls -Wswitch-default # don't warn about conversion, sign, compares, long long and attributes # since they are common in embedded - -Wno-sign-conversion + -Wno-sign-conversion -Wno-conversion - -Wno-sign-compare + -Wno-sign-compare -Wno-long-long -Wno-attributes # don't warn about implicit fallthrough since it is common in network protocols @@ -259,7 +259,7 @@ add_custom_target(symbols ) # calculate the worst case CSTACK memory usage by size and place into a file -add_custom_target(cstack +add_custom_target(cstack DEPENDS ${EXECUTABLE} COMMENT "Print CSTACK memory depth by size" COMMAND ${CMAKE_CSTACK} ${EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR} 1> ${PROJECT_NAME}.su @@ -269,7 +269,7 @@ add_custom_target(cstack ) # Print file and library sizes -add_custom_target(memmap +add_custom_target(memmap DEPENDS ${PROJECT_NAME}.map COMMENT "Print file and library memory usage by size" COMMAND ${CMAKE_MEMAP} -t GCC_ARM ${PROJECT_NAME}.map diff --git a/ports/at91sam7s/at91sam7s256.h b/ports/at91sam7s/at91sam7s256.h index 5e659a19..2524e2fb 100644 --- a/ports/at91sam7s/at91sam7s256.h +++ b/ports/at91sam7s/at91sam7s256.h @@ -201,13 +201,13 @@ typedef struct _AT91S_AIC { /* -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- */ #define AT91C_AIC_PRIOR ((unsigned int) 0x7 << 0) /* (AIC) Priority Level */ -#define AT91C_AIC_PRIOR_LOWEST ((unsigned int) 0x0) /* (AIC) Lowest priority level */ -#define AT91C_AIC_PRIOR_HIGHEST ((unsigned int) 0x7) /* (AIC) Highest priority level */ +#define AT91C_AIC_PRIOR_LOWEST ((unsigned int) 0x0) /* (AIC) Lowest priority level */ +#define AT91C_AIC_PRIOR_HIGHEST ((unsigned int) 0x7) /* (AIC) Highest priority level */ #define AT91C_AIC_SRCTYPE ((unsigned int) 0x3 << 5) /* (AIC) Interrupt Source Type */ -#define AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE ((unsigned int) 0x0 << 5) /* (AIC) Internal Sources Code Label Level Sensitive */ -#define AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED ((unsigned int) 0x1 << 5) /* (AIC) Internal Sources Code Label Edge triggered */ -#define AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL ((unsigned int) 0x2 << 5) /* (AIC) External Sources Code Label High-level Sensitive */ -#define AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE ((unsigned int) 0x3 << 5) /* (AIC) External Sources Code Label Positive Edge triggered */ +#define AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE ((unsigned int) 0x0 << 5) /* (AIC) Internal Sources Code Label Level Sensitive */ +#define AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED ((unsigned int) 0x1 << 5) /* (AIC) Internal Sources Code Label Edge triggered */ +#define AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL ((unsigned int) 0x2 << 5) /* (AIC) External Sources Code Label High-level Sensitive */ +#define AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE ((unsigned int) 0x3 << 5) /* (AIC) External Sources Code Label Positive Edge triggered */ /* -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- */ #define AT91C_AIC_NFIQ ((unsigned int) 0x1 << 0) /* (AIC) NFIQ Status */ #define AT91C_AIC_NIRQ ((unsigned int) 0x1 << 1) /* (AIC) NIRQ Status */ @@ -280,17 +280,17 @@ typedef struct _AT91S_DBGU { #define AT91C_US_RSTSTA ((unsigned int) 0x1 << 8) /* (DBGU) Reset Status Bits */ /* -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- */ #define AT91C_US_PAR ((unsigned int) 0x7 << 9) /* (DBGU) Parity type */ -#define AT91C_US_PAR_EVEN ((unsigned int) 0x0 << 9) /* (DBGU) Even Parity */ -#define AT91C_US_PAR_ODD ((unsigned int) 0x1 << 9) /* (DBGU) Odd Parity */ -#define AT91C_US_PAR_SPACE ((unsigned int) 0x2 << 9) /* (DBGU) Parity forced to 0 (Space) */ -#define AT91C_US_PAR_MARK ((unsigned int) 0x3 << 9) /* (DBGU) Parity forced to 1 (Mark) */ -#define AT91C_US_PAR_NONE ((unsigned int) 0x4 << 9) /* (DBGU) No Parity */ -#define AT91C_US_PAR_MULTI_DROP ((unsigned int) 0x6 << 9) /* (DBGU) Multi-drop mode */ +#define AT91C_US_PAR_EVEN ((unsigned int) 0x0 << 9) /* (DBGU) Even Parity */ +#define AT91C_US_PAR_ODD ((unsigned int) 0x1 << 9) /* (DBGU) Odd Parity */ +#define AT91C_US_PAR_SPACE ((unsigned int) 0x2 << 9) /* (DBGU) Parity forced to 0 (Space) */ +#define AT91C_US_PAR_MARK ((unsigned int) 0x3 << 9) /* (DBGU) Parity forced to 1 (Mark) */ +#define AT91C_US_PAR_NONE ((unsigned int) 0x4 << 9) /* (DBGU) No Parity */ +#define AT91C_US_PAR_MULTI_DROP ((unsigned int) 0x6 << 9) /* (DBGU) Multi-drop mode */ #define AT91C_US_CHMODE ((unsigned int) 0x3 << 14) /* (DBGU) Channel Mode */ -#define AT91C_US_CHMODE_NORMAL ((unsigned int) 0x0 << 14) /* (DBGU) Normal Mode: The USART channel operates as an RX/TX USART. */ -#define AT91C_US_CHMODE_AUTO ((unsigned int) 0x1 << 14) /* (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin. */ -#define AT91C_US_CHMODE_LOCAL ((unsigned int) 0x2 << 14) /* (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal. */ -#define AT91C_US_CHMODE_REMOTE ((unsigned int) 0x3 << 14) /* (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin. */ +#define AT91C_US_CHMODE_NORMAL ((unsigned int) 0x0 << 14) /* (DBGU) Normal Mode: The USART channel operates as an RX/TX USART. */ +#define AT91C_US_CHMODE_AUTO ((unsigned int) 0x1 << 14) /* (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin. */ +#define AT91C_US_CHMODE_LOCAL ((unsigned int) 0x2 << 14) /* (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal. */ +#define AT91C_US_CHMODE_REMOTE ((unsigned int) 0x3 << 14) /* (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin. */ /* -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- */ #define AT91C_US_RXRDY ((unsigned int) 0x1 << 0) /* (DBGU) RXRDY Interrupt */ #define AT91C_US_TXRDY ((unsigned int) 0x1 << 1) /* (DBGU) TXRDY Interrupt */ @@ -373,19 +373,19 @@ typedef struct _AT91S_CKGR { #define AT91C_CKGR_MAINRDY ((unsigned int) 0x1 << 16) /* (CKGR) Main Clock Ready */ /* -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- */ #define AT91C_CKGR_DIV ((unsigned int) 0xFF << 0) /* (CKGR) Divider Selected */ -#define AT91C_CKGR_DIV_0 ((unsigned int) 0x0) /* (CKGR) Divider output is 0 */ -#define AT91C_CKGR_DIV_BYPASS ((unsigned int) 0x1) /* (CKGR) Divider is bypassed */ +#define AT91C_CKGR_DIV_0 ((unsigned int) 0x0) /* (CKGR) Divider output is 0 */ +#define AT91C_CKGR_DIV_BYPASS ((unsigned int) 0x1) /* (CKGR) Divider is bypassed */ #define AT91C_CKGR_PLLCOUNT ((unsigned int) 0x3F << 8) /* (CKGR) PLL Counter */ #define AT91C_CKGR_OUT ((unsigned int) 0x3 << 14) /* (CKGR) PLL Output Frequency Range */ -#define AT91C_CKGR_OUT_0 ((unsigned int) 0x0 << 14) /* (CKGR) Please refer to the PLL datasheet */ -#define AT91C_CKGR_OUT_1 ((unsigned int) 0x1 << 14) /* (CKGR) Please refer to the PLL datasheet */ -#define AT91C_CKGR_OUT_2 ((unsigned int) 0x2 << 14) /* (CKGR) Please refer to the PLL datasheet */ -#define AT91C_CKGR_OUT_3 ((unsigned int) 0x3 << 14) /* (CKGR) Please refer to the PLL datasheet */ +#define AT91C_CKGR_OUT_0 ((unsigned int) 0x0 << 14) /* (CKGR) Please refer to the PLL datasheet */ +#define AT91C_CKGR_OUT_1 ((unsigned int) 0x1 << 14) /* (CKGR) Please refer to the PLL datasheet */ +#define AT91C_CKGR_OUT_2 ((unsigned int) 0x2 << 14) /* (CKGR) Please refer to the PLL datasheet */ +#define AT91C_CKGR_OUT_3 ((unsigned int) 0x3 << 14) /* (CKGR) Please refer to the PLL datasheet */ #define AT91C_CKGR_MUL ((unsigned int) 0x7FF << 16) /* (CKGR) PLL Multiplier */ #define AT91C_CKGR_USBDIV ((unsigned int) 0x3 << 28) /* (CKGR) Divider for USB Clocks */ -#define AT91C_CKGR_USBDIV_0 ((unsigned int) 0x0 << 28) /* (CKGR) Divider output is PLL clock output */ -#define AT91C_CKGR_USBDIV_1 ((unsigned int) 0x1 << 28) /* (CKGR) Divider output is PLL clock output divided by 2 */ -#define AT91C_CKGR_USBDIV_2 ((unsigned int) 0x2 << 28) /* (CKGR) Divider output is PLL clock output divided by 4 */ +#define AT91C_CKGR_USBDIV_0 ((unsigned int) 0x0 << 28) /* (CKGR) Divider output is PLL clock output */ +#define AT91C_CKGR_USBDIV_1 ((unsigned int) 0x1 << 28) /* (CKGR) Divider output is PLL clock output divided by 2 */ +#define AT91C_CKGR_USBDIV_2 ((unsigned int) 0x2 << 28) /* (CKGR) Divider output is PLL clock output divided by 4 */ /* ***************************************************************************** */ /* SOFTWARE API DEFINITION FOR Power Management Controler */ @@ -427,17 +427,17 @@ typedef struct _AT91S_PMC { /* -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- */ /* -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- */ #define AT91C_PMC_CSS ((unsigned int) 0x3 << 0) /* (PMC) Programmable Clock Selection */ -#define AT91C_PMC_CSS_SLOW_CLK ((unsigned int) 0x0) /* (PMC) Slow Clock is selected */ -#define AT91C_PMC_CSS_MAIN_CLK ((unsigned int) 0x1) /* (PMC) Main Clock is selected */ -#define AT91C_PMC_CSS_PLL_CLK ((unsigned int) 0x3) /* (PMC) Clock from PLL is selected */ +#define AT91C_PMC_CSS_SLOW_CLK ((unsigned int) 0x0) /* (PMC) Slow Clock is selected */ +#define AT91C_PMC_CSS_MAIN_CLK ((unsigned int) 0x1) /* (PMC) Main Clock is selected */ +#define AT91C_PMC_CSS_PLL_CLK ((unsigned int) 0x3) /* (PMC) Clock from PLL is selected */ #define AT91C_PMC_PRES ((unsigned int) 0x7 << 2) /* (PMC) Programmable Clock Prescaler */ -#define AT91C_PMC_PRES_CLK ((unsigned int) 0x0 << 2) /* (PMC) Selected clock */ -#define AT91C_PMC_PRES_CLK_2 ((unsigned int) 0x1 << 2) /* (PMC) Selected clock divided by 2 */ -#define AT91C_PMC_PRES_CLK_4 ((unsigned int) 0x2 << 2) /* (PMC) Selected clock divided by 4 */ -#define AT91C_PMC_PRES_CLK_8 ((unsigned int) 0x3 << 2) /* (PMC) Selected clock divided by 8 */ -#define AT91C_PMC_PRES_CLK_16 ((unsigned int) 0x4 << 2) /* (PMC) Selected clock divided by 16 */ -#define AT91C_PMC_PRES_CLK_32 ((unsigned int) 0x5 << 2) /* (PMC) Selected clock divided by 32 */ -#define AT91C_PMC_PRES_CLK_64 ((unsigned int) 0x6 << 2) /* (PMC) Selected clock divided by 64 */ +#define AT91C_PMC_PRES_CLK ((unsigned int) 0x0 << 2) /* (PMC) Selected clock */ +#define AT91C_PMC_PRES_CLK_2 ((unsigned int) 0x1 << 2) /* (PMC) Selected clock divided by 2 */ +#define AT91C_PMC_PRES_CLK_4 ((unsigned int) 0x2 << 2) /* (PMC) Selected clock divided by 4 */ +#define AT91C_PMC_PRES_CLK_8 ((unsigned int) 0x3 << 2) /* (PMC) Selected clock divided by 8 */ +#define AT91C_PMC_PRES_CLK_16 ((unsigned int) 0x4 << 2) /* (PMC) Selected clock divided by 16 */ +#define AT91C_PMC_PRES_CLK_32 ((unsigned int) 0x5 << 2) /* (PMC) Selected clock divided by 32 */ +#define AT91C_PMC_PRES_CLK_64 ((unsigned int) 0x6 << 2) /* (PMC) Selected clock divided by 64 */ /* -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- */ /* -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- */ #define AT91C_PMC_MOSCS ((unsigned int) 0x1 << 0) /* (PMC) MOSC Status/Enable/Disable/Mask */ @@ -469,12 +469,12 @@ typedef struct _AT91S_RSTC { #define AT91C_RSTC_URSTS ((unsigned int) 0x1 << 0) /* (RSTC) User Reset Status */ #define AT91C_RSTC_BODSTS ((unsigned int) 0x1 << 1) /* (RSTC) Brownout Detection Status */ #define AT91C_RSTC_RSTTYP ((unsigned int) 0x7 << 8) /* (RSTC) Reset Type */ -#define AT91C_RSTC_RSTTYP_POWERUP ((unsigned int) 0x0 << 8) /* (RSTC) Power-up Reset. VDDCORE rising. */ -#define AT91C_RSTC_RSTTYP_WAKEUP ((unsigned int) 0x1 << 8) /* (RSTC) WakeUp Reset. VDDCORE rising. */ -#define AT91C_RSTC_RSTTYP_WATCHDOG ((unsigned int) 0x2 << 8) /* (RSTC) Watchdog Reset. Watchdog overflow occured. */ -#define AT91C_RSTC_RSTTYP_SOFTWARE ((unsigned int) 0x3 << 8) /* (RSTC) Software Reset. Processor reset required by the software. */ -#define AT91C_RSTC_RSTTYP_USER ((unsigned int) 0x4 << 8) /* (RSTC) User Reset. NRST pin detected low. */ -#define AT91C_RSTC_RSTTYP_BROWNOUT ((unsigned int) 0x5 << 8) /* (RSTC) Brownout Reset occured. */ +#define AT91C_RSTC_RSTTYP_POWERUP ((unsigned int) 0x0 << 8) /* (RSTC) Power-up Reset. VDDCORE rising. */ +#define AT91C_RSTC_RSTTYP_WAKEUP ((unsigned int) 0x1 << 8) /* (RSTC) WakeUp Reset. VDDCORE rising. */ +#define AT91C_RSTC_RSTTYP_WATCHDOG ((unsigned int) 0x2 << 8) /* (RSTC) Watchdog Reset. Watchdog overflow occured. */ +#define AT91C_RSTC_RSTTYP_SOFTWARE ((unsigned int) 0x3 << 8) /* (RSTC) Software Reset. Processor reset required by the software. */ +#define AT91C_RSTC_RSTTYP_USER ((unsigned int) 0x4 << 8) /* (RSTC) User Reset. NRST pin detected low. */ +#define AT91C_RSTC_RSTTYP_BROWNOUT ((unsigned int) 0x5 << 8) /* (RSTC) Brownout Reset occured. */ #define AT91C_RSTC_NRSTL ((unsigned int) 0x1 << 16) /* (RSTC) NRST pin level */ #define AT91C_RSTC_SRCMP ((unsigned int) 0x1 << 17) /* (RSTC) Software Reset Command in Progress. */ /* -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- */ @@ -586,13 +586,13 @@ typedef struct _AT91S_MC { #define AT91C_MC_UNDADD ((unsigned int) 0x1 << 0) /* (MC) Undefined Addess Abort Status */ #define AT91C_MC_MISADD ((unsigned int) 0x1 << 1) /* (MC) Misaligned Addess Abort Status */ #define AT91C_MC_ABTSZ ((unsigned int) 0x3 << 8) /* (MC) Abort Size Status */ -#define AT91C_MC_ABTSZ_BYTE ((unsigned int) 0x0 << 8) /* (MC) Byte */ -#define AT91C_MC_ABTSZ_HWORD ((unsigned int) 0x1 << 8) /* (MC) Half-word */ -#define AT91C_MC_ABTSZ_WORD ((unsigned int) 0x2 << 8) /* (MC) Word */ +#define AT91C_MC_ABTSZ_BYTE ((unsigned int) 0x0 << 8) /* (MC) Byte */ +#define AT91C_MC_ABTSZ_HWORD ((unsigned int) 0x1 << 8) /* (MC) Half-word */ +#define AT91C_MC_ABTSZ_WORD ((unsigned int) 0x2 << 8) /* (MC) Word */ #define AT91C_MC_ABTTYP ((unsigned int) 0x3 << 10) /* (MC) Abort Type Status */ -#define AT91C_MC_ABTTYP_DATAR ((unsigned int) 0x0 << 10) /* (MC) Data Read */ -#define AT91C_MC_ABTTYP_DATAW ((unsigned int) 0x1 << 10) /* (MC) Data Write */ -#define AT91C_MC_ABTTYP_FETCH ((unsigned int) 0x2 << 10) /* (MC) Code Fetch */ +#define AT91C_MC_ABTTYP_DATAR ((unsigned int) 0x0 << 10) /* (MC) Data Read */ +#define AT91C_MC_ABTTYP_DATAW ((unsigned int) 0x1 << 10) /* (MC) Data Write */ +#define AT91C_MC_ABTTYP_FETCH ((unsigned int) 0x2 << 10) /* (MC) Code Fetch */ #define AT91C_MC_MST0 ((unsigned int) 0x1 << 16) /* (MC) Master 0 Abort Source */ #define AT91C_MC_MST1 ((unsigned int) 0x1 << 17) /* (MC) Master 1 Abort Source */ #define AT91C_MC_SVMST0 ((unsigned int) 0x1 << 24) /* (MC) Saved Master 0 Abort Source */ @@ -603,21 +603,21 @@ typedef struct _AT91S_MC { #define AT91C_MC_PROGE ((unsigned int) 0x1 << 3) /* (MC) Programming Error */ #define AT91C_MC_NEBP ((unsigned int) 0x1 << 7) /* (MC) No Erase Before Programming */ #define AT91C_MC_FWS ((unsigned int) 0x3 << 8) /* (MC) Flash Wait State */ -#define AT91C_MC_FWS_0FWS ((unsigned int) 0x0 << 8) /* (MC) 1 cycle for Read, 2 for Write operations */ -#define AT91C_MC_FWS_1FWS ((unsigned int) 0x1 << 8) /* (MC) 2 cycles for Read, 3 for Write operations */ -#define AT91C_MC_FWS_2FWS ((unsigned int) 0x2 << 8) /* (MC) 3 cycles for Read, 4 for Write operations */ -#define AT91C_MC_FWS_3FWS ((unsigned int) 0x3 << 8) /* (MC) 4 cycles for Read, 4 for Write operations */ +#define AT91C_MC_FWS_0FWS ((unsigned int) 0x0 << 8) /* (MC) 1 cycle for Read, 2 for Write operations */ +#define AT91C_MC_FWS_1FWS ((unsigned int) 0x1 << 8) /* (MC) 2 cycles for Read, 3 for Write operations */ +#define AT91C_MC_FWS_2FWS ((unsigned int) 0x2 << 8) /* (MC) 3 cycles for Read, 4 for Write operations */ +#define AT91C_MC_FWS_3FWS ((unsigned int) 0x3 << 8) /* (MC) 4 cycles for Read, 4 for Write operations */ #define AT91C_MC_FMCN ((unsigned int) 0xFF << 16) /* (MC) Flash Microsecond Cycle Number */ /* -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- */ #define AT91C_MC_FCMD ((unsigned int) 0xF << 0) /* (MC) Flash Command */ -#define AT91C_MC_FCMD_START_PROG ((unsigned int) 0x1) /* (MC) Starts the programming of th epage specified by PAGEN. */ -#define AT91C_MC_FCMD_LOCK ((unsigned int) 0x2) /* (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */ -#define AT91C_MC_FCMD_PROG_AND_LOCK ((unsigned int) 0x3) /* (MC) The lock sequence automatically happens after the programming sequence is completed. */ -#define AT91C_MC_FCMD_UNLOCK ((unsigned int) 0x4) /* (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */ -#define AT91C_MC_FCMD_ERASE_ALL ((unsigned int) 0x8) /* (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled. */ -#define AT91C_MC_FCMD_SET_GP_NVM ((unsigned int) 0xB) /* (MC) Set General Purpose NVM bits. */ -#define AT91C_MC_FCMD_CLR_GP_NVM ((unsigned int) 0xD) /* (MC) Clear General Purpose NVM bits. */ -#define AT91C_MC_FCMD_SET_SECURITY ((unsigned int) 0xF) /* (MC) Set Security Bit. */ +#define AT91C_MC_FCMD_START_PROG ((unsigned int) 0x1) /* (MC) Starts the programming of th epage specified by PAGEN. */ +#define AT91C_MC_FCMD_LOCK ((unsigned int) 0x2) /* (MC) Starts a lock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */ +#define AT91C_MC_FCMD_PROG_AND_LOCK ((unsigned int) 0x3) /* (MC) The lock sequence automatically happens after the programming sequence is completed. */ +#define AT91C_MC_FCMD_UNLOCK ((unsigned int) 0x4) /* (MC) Starts an unlock sequence of the sector defined by the bits 4 to 7 of the field PAGEN. */ +#define AT91C_MC_FCMD_ERASE_ALL ((unsigned int) 0x8) /* (MC) Starts the erase of the entire flash.If at least a page is locked, the command is cancelled. */ +#define AT91C_MC_FCMD_SET_GP_NVM ((unsigned int) 0xB) /* (MC) Set General Purpose NVM bits. */ +#define AT91C_MC_FCMD_CLR_GP_NVM ((unsigned int) 0xD) /* (MC) Clear General Purpose NVM bits. */ +#define AT91C_MC_FCMD_SET_SECURITY ((unsigned int) 0xF) /* (MC) Set Security Bit. */ #define AT91C_MC_PAGEN ((unsigned int) 0x3FF << 8) /* (MC) Page Number */ #define AT91C_MC_KEY ((unsigned int) 0xFF << 24) /* (MC) Writing Protect Key */ /* -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- */ @@ -683,8 +683,8 @@ typedef struct _AT91S_SPI { /* -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- */ #define AT91C_SPI_MSTR ((unsigned int) 0x1 << 0) /* (SPI) Master/Slave Mode */ #define AT91C_SPI_PS ((unsigned int) 0x1 << 1) /* (SPI) Peripheral Select */ -#define AT91C_SPI_PS_FIXED ((unsigned int) 0x0 << 1) /* (SPI) Fixed Peripheral Select */ -#define AT91C_SPI_PS_VARIABLE ((unsigned int) 0x1 << 1) /* (SPI) Variable Peripheral Select */ +#define AT91C_SPI_PS_FIXED ((unsigned int) 0x0 << 1) /* (SPI) Fixed Peripheral Select */ +#define AT91C_SPI_PS_VARIABLE ((unsigned int) 0x1 << 1) /* (SPI) Variable Peripheral Select */ #define AT91C_SPI_PCSDEC ((unsigned int) 0x1 << 2) /* (SPI) Chip Select Decode */ #define AT91C_SPI_FDIV ((unsigned int) 0x1 << 3) /* (SPI) Clock Selection */ #define AT91C_SPI_MODFDIS ((unsigned int) 0x1 << 4) /* (SPI) Mode Fault Detection */ @@ -717,15 +717,15 @@ typedef struct _AT91S_SPI { #define AT91C_SPI_NCPHA ((unsigned int) 0x1 << 1) /* (SPI) Clock Phase */ #define AT91C_SPI_CSAAT ((unsigned int) 0x1 << 3) /* (SPI) Chip Select Active After Transfer */ #define AT91C_SPI_BITS ((unsigned int) 0xF << 4) /* (SPI) Bits Per Transfer */ -#define AT91C_SPI_BITS_8 ((unsigned int) 0x0 << 4) /* (SPI) 8 Bits Per transfer */ -#define AT91C_SPI_BITS_9 ((unsigned int) 0x1 << 4) /* (SPI) 9 Bits Per transfer */ -#define AT91C_SPI_BITS_10 ((unsigned int) 0x2 << 4) /* (SPI) 10 Bits Per transfer */ -#define AT91C_SPI_BITS_11 ((unsigned int) 0x3 << 4) /* (SPI) 11 Bits Per transfer */ -#define AT91C_SPI_BITS_12 ((unsigned int) 0x4 << 4) /* (SPI) 12 Bits Per transfer */ -#define AT91C_SPI_BITS_13 ((unsigned int) 0x5 << 4) /* (SPI) 13 Bits Per transfer */ -#define AT91C_SPI_BITS_14 ((unsigned int) 0x6 << 4) /* (SPI) 14 Bits Per transfer */ -#define AT91C_SPI_BITS_15 ((unsigned int) 0x7 << 4) /* (SPI) 15 Bits Per transfer */ -#define AT91C_SPI_BITS_16 ((unsigned int) 0x8 << 4) /* (SPI) 16 Bits Per transfer */ +#define AT91C_SPI_BITS_8 ((unsigned int) 0x0 << 4) /* (SPI) 8 Bits Per transfer */ +#define AT91C_SPI_BITS_9 ((unsigned int) 0x1 << 4) /* (SPI) 9 Bits Per transfer */ +#define AT91C_SPI_BITS_10 ((unsigned int) 0x2 << 4) /* (SPI) 10 Bits Per transfer */ +#define AT91C_SPI_BITS_11 ((unsigned int) 0x3 << 4) /* (SPI) 11 Bits Per transfer */ +#define AT91C_SPI_BITS_12 ((unsigned int) 0x4 << 4) /* (SPI) 12 Bits Per transfer */ +#define AT91C_SPI_BITS_13 ((unsigned int) 0x5 << 4) /* (SPI) 13 Bits Per transfer */ +#define AT91C_SPI_BITS_14 ((unsigned int) 0x6 << 4) /* (SPI) 14 Bits Per transfer */ +#define AT91C_SPI_BITS_15 ((unsigned int) 0x7 << 4) /* (SPI) 15 Bits Per transfer */ +#define AT91C_SPI_BITS_16 ((unsigned int) 0x8 << 4) /* (SPI) 16 Bits Per transfer */ #define AT91C_SPI_SCBR ((unsigned int) 0xFF << 8) /* (SPI) Serial Clock Baud Rate */ #define AT91C_SPI_DLYBS ((unsigned int) 0xFF << 16) /* (SPI) Serial Clock Baud Rate */ #define AT91C_SPI_DLYBCT ((unsigned int) 0xFF << 24) /* (SPI) Delay Between Consecutive Transfers */ @@ -772,22 +772,22 @@ typedef struct _AT91S_ADC { #define AT91C_ADC_START ((unsigned int) 0x1 << 1) /* (ADC) Start Conversion */ /* -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- */ #define AT91C_ADC_TRGEN ((unsigned int) 0x1 << 0) /* (ADC) Trigger Enable */ -#define AT91C_ADC_TRGEN_DIS ((unsigned int) 0x0) /* (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software */ -#define AT91C_ADC_TRGEN_EN ((unsigned int) 0x1) /* (ADC) Hardware trigger selected by TRGSEL field is enabled. */ +#define AT91C_ADC_TRGEN_DIS ((unsigned int) 0x0) /* (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software */ +#define AT91C_ADC_TRGEN_EN ((unsigned int) 0x1) /* (ADC) Hardware trigger selected by TRGSEL field is enabled. */ #define AT91C_ADC_TRGSEL ((unsigned int) 0x7 << 1) /* (ADC) Trigger Selection */ -#define AT91C_ADC_TRGSEL_TIOA0 ((unsigned int) 0x0 << 1) /* (ADC) Selected TRGSEL = TIAO0 */ -#define AT91C_ADC_TRGSEL_TIOA1 ((unsigned int) 0x1 << 1) /* (ADC) Selected TRGSEL = TIAO1 */ -#define AT91C_ADC_TRGSEL_TIOA2 ((unsigned int) 0x2 << 1) /* (ADC) Selected TRGSEL = TIAO2 */ -#define AT91C_ADC_TRGSEL_TIOA3 ((unsigned int) 0x3 << 1) /* (ADC) Selected TRGSEL = TIAO3 */ -#define AT91C_ADC_TRGSEL_TIOA4 ((unsigned int) 0x4 << 1) /* (ADC) Selected TRGSEL = TIAO4 */ -#define AT91C_ADC_TRGSEL_TIOA5 ((unsigned int) 0x5 << 1) /* (ADC) Selected TRGSEL = TIAO5 */ -#define AT91C_ADC_TRGSEL_EXT ((unsigned int) 0x6 << 1) /* (ADC) Selected TRGSEL = External Trigger */ +#define AT91C_ADC_TRGSEL_TIOA0 ((unsigned int) 0x0 << 1) /* (ADC) Selected TRGSEL = TIAO0 */ +#define AT91C_ADC_TRGSEL_TIOA1 ((unsigned int) 0x1 << 1) /* (ADC) Selected TRGSEL = TIAO1 */ +#define AT91C_ADC_TRGSEL_TIOA2 ((unsigned int) 0x2 << 1) /* (ADC) Selected TRGSEL = TIAO2 */ +#define AT91C_ADC_TRGSEL_TIOA3 ((unsigned int) 0x3 << 1) /* (ADC) Selected TRGSEL = TIAO3 */ +#define AT91C_ADC_TRGSEL_TIOA4 ((unsigned int) 0x4 << 1) /* (ADC) Selected TRGSEL = TIAO4 */ +#define AT91C_ADC_TRGSEL_TIOA5 ((unsigned int) 0x5 << 1) /* (ADC) Selected TRGSEL = TIAO5 */ +#define AT91C_ADC_TRGSEL_EXT ((unsigned int) 0x6 << 1) /* (ADC) Selected TRGSEL = External Trigger */ #define AT91C_ADC_LOWRES ((unsigned int) 0x1 << 4) /* (ADC) Resolution. */ -#define AT91C_ADC_LOWRES_10_BIT ((unsigned int) 0x0 << 4) /* (ADC) 10-bit resolution */ -#define AT91C_ADC_LOWRES_8_BIT ((unsigned int) 0x1 << 4) /* (ADC) 8-bit resolution */ +#define AT91C_ADC_LOWRES_10_BIT ((unsigned int) 0x0 << 4) /* (ADC) 10-bit resolution */ +#define AT91C_ADC_LOWRES_8_BIT ((unsigned int) 0x1 << 4) /* (ADC) 8-bit resolution */ #define AT91C_ADC_SLEEP ((unsigned int) 0x1 << 5) /* (ADC) Sleep Mode */ -#define AT91C_ADC_SLEEP_NORMAL_MODE ((unsigned int) 0x0 << 5) /* (ADC) Normal Mode */ -#define AT91C_ADC_SLEEP_MODE ((unsigned int) 0x1 << 5) /* (ADC) Sleep Mode */ +#define AT91C_ADC_SLEEP_NORMAL_MODE ((unsigned int) 0x0 << 5) /* (ADC) Normal Mode */ +#define AT91C_ADC_SLEEP_MODE ((unsigned int) 0x1 << 5) /* (ADC) Sleep Mode */ #define AT91C_ADC_PRESCAL ((unsigned int) 0x3F << 8) /* (ADC) Prescaler rate selection */ #define AT91C_ADC_STARTUP ((unsigned int) 0x1F << 16) /* (ADC) Startup Time */ #define AT91C_ADC_SHTIM ((unsigned int) 0xF << 24) /* (ADC) Sample & Hold Time */ @@ -881,24 +881,24 @@ typedef struct _AT91S_SSC { #define AT91C_SSC_SWRST ((unsigned int) 0x1 << 15) /* (SSC) Software Reset */ /* -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- */ #define AT91C_SSC_CKS ((unsigned int) 0x3 << 0) /* (SSC) Receive/Transmit Clock Selection */ -#define AT91C_SSC_CKS_DIV ((unsigned int) 0x0) /* (SSC) Divided Clock */ -#define AT91C_SSC_CKS_TK ((unsigned int) 0x1) /* (SSC) TK Clock signal */ -#define AT91C_SSC_CKS_RK ((unsigned int) 0x2) /* (SSC) RK pin */ +#define AT91C_SSC_CKS_DIV ((unsigned int) 0x0) /* (SSC) Divided Clock */ +#define AT91C_SSC_CKS_TK ((unsigned int) 0x1) /* (SSC) TK Clock signal */ +#define AT91C_SSC_CKS_RK ((unsigned int) 0x2) /* (SSC) RK pin */ #define AT91C_SSC_CKO ((unsigned int) 0x7 << 2) /* (SSC) Receive/Transmit Clock Output Mode Selection */ -#define AT91C_SSC_CKO_NONE ((unsigned int) 0x0 << 2) /* (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only */ -#define AT91C_SSC_CKO_CONTINOUS ((unsigned int) 0x1 << 2) /* (SSC) Continuous Receive/Transmit Clock RK pin: Output */ -#define AT91C_SSC_CKO_DATA_TX ((unsigned int) 0x2 << 2) /* (SSC) Receive/Transmit Clock only during data transfers RK pin: Output */ +#define AT91C_SSC_CKO_NONE ((unsigned int) 0x0 << 2) /* (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only */ +#define AT91C_SSC_CKO_CONTINOUS ((unsigned int) 0x1 << 2) /* (SSC) Continuous Receive/Transmit Clock RK pin: Output */ +#define AT91C_SSC_CKO_DATA_TX ((unsigned int) 0x2 << 2) /* (SSC) Receive/Transmit Clock only during data transfers RK pin: Output */ #define AT91C_SSC_CKI ((unsigned int) 0x1 << 5) /* (SSC) Receive/Transmit Clock Inversion */ #define AT91C_SSC_START ((unsigned int) 0xF << 8) /* (SSC) Receive/Transmit Start Selection */ -#define AT91C_SSC_START_CONTINOUS ((unsigned int) 0x0 << 8) /* (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data. */ -#define AT91C_SSC_START_TX ((unsigned int) 0x1 << 8) /* (SSC) Transmit/Receive start */ -#define AT91C_SSC_START_LOW_RF ((unsigned int) 0x2 << 8) /* (SSC) Detection of a low level on RF input */ -#define AT91C_SSC_START_HIGH_RF ((unsigned int) 0x3 << 8) /* (SSC) Detection of a high level on RF input */ -#define AT91C_SSC_START_FALL_RF ((unsigned int) 0x4 << 8) /* (SSC) Detection of a falling edge on RF input */ -#define AT91C_SSC_START_RISE_RF ((unsigned int) 0x5 << 8) /* (SSC) Detection of a rising edge on RF input */ -#define AT91C_SSC_START_LEVEL_RF ((unsigned int) 0x6 << 8) /* (SSC) Detection of any level change on RF input */ -#define AT91C_SSC_START_EDGE_RF ((unsigned int) 0x7 << 8) /* (SSC) Detection of any edge on RF input */ -#define AT91C_SSC_START_0 ((unsigned int) 0x8 << 8) /* (SSC) Compare 0 */ +#define AT91C_SSC_START_CONTINOUS ((unsigned int) 0x0 << 8) /* (SSC) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data. */ +#define AT91C_SSC_START_TX ((unsigned int) 0x1 << 8) /* (SSC) Transmit/Receive start */ +#define AT91C_SSC_START_LOW_RF ((unsigned int) 0x2 << 8) /* (SSC) Detection of a low level on RF input */ +#define AT91C_SSC_START_HIGH_RF ((unsigned int) 0x3 << 8) /* (SSC) Detection of a high level on RF input */ +#define AT91C_SSC_START_FALL_RF ((unsigned int) 0x4 << 8) /* (SSC) Detection of a falling edge on RF input */ +#define AT91C_SSC_START_RISE_RF ((unsigned int) 0x5 << 8) /* (SSC) Detection of a rising edge on RF input */ +#define AT91C_SSC_START_LEVEL_RF ((unsigned int) 0x6 << 8) /* (SSC) Detection of any level change on RF input */ +#define AT91C_SSC_START_EDGE_RF ((unsigned int) 0x7 << 8) /* (SSC) Detection of any edge on RF input */ +#define AT91C_SSC_START_0 ((unsigned int) 0x8 << 8) /* (SSC) Compare 0 */ #define AT91C_SSC_STTDLY ((unsigned int) 0xFF << 16) /* (SSC) Receive/Transmit Start Delay */ #define AT91C_SSC_PERIOD ((unsigned int) 0xFF << 24) /* (SSC) Receive/Transmit Period Divider Selection */ /* -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- */ @@ -908,12 +908,12 @@ typedef struct _AT91S_SSC { #define AT91C_SSC_DATNB ((unsigned int) 0xF << 8) /* (SSC) Data Number per Frame */ #define AT91C_SSC_FSLEN ((unsigned int) 0xF << 16) /* (SSC) Receive/Transmit Frame Sync length */ #define AT91C_SSC_FSOS ((unsigned int) 0x7 << 20) /* (SSC) Receive/Transmit Frame Sync Output Selection */ -#define AT91C_SSC_FSOS_NONE ((unsigned int) 0x0 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only */ -#define AT91C_SSC_FSOS_NEGATIVE ((unsigned int) 0x1 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse */ -#define AT91C_SSC_FSOS_POSITIVE ((unsigned int) 0x2 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse */ -#define AT91C_SSC_FSOS_LOW ((unsigned int) 0x3 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer */ -#define AT91C_SSC_FSOS_HIGH ((unsigned int) 0x4 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer */ -#define AT91C_SSC_FSOS_TOGGLE ((unsigned int) 0x5 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer */ +#define AT91C_SSC_FSOS_NONE ((unsigned int) 0x0 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only */ +#define AT91C_SSC_FSOS_NEGATIVE ((unsigned int) 0x1 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse */ +#define AT91C_SSC_FSOS_POSITIVE ((unsigned int) 0x2 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse */ +#define AT91C_SSC_FSOS_LOW ((unsigned int) 0x3 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer */ +#define AT91C_SSC_FSOS_HIGH ((unsigned int) 0x4 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer */ +#define AT91C_SSC_FSOS_TOGGLE ((unsigned int) 0x5 << 20) /* (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer */ #define AT91C_SSC_FSEDGE ((unsigned int) 0x1 << 24) /* (SSC) Frame Sync Edge Detection */ /* -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- */ /* -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- */ @@ -984,29 +984,29 @@ typedef struct _AT91S_USART { #define AT91C_US_RTSDIS ((unsigned int) 0x1 << 19) /* (USART) Request to Send Disable */ /* -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- */ #define AT91C_US_USMODE ((unsigned int) 0xF << 0) /* (USART) Usart mode */ -#define AT91C_US_USMODE_NORMAL ((unsigned int) 0x0) /* (USART) Normal */ -#define AT91C_US_USMODE_RS485 ((unsigned int) 0x1) /* (USART) RS485 */ -#define AT91C_US_USMODE_HWHSH ((unsigned int) 0x2) /* (USART) Hardware Handshaking */ -#define AT91C_US_USMODE_MODEM ((unsigned int) 0x3) /* (USART) Modem */ -#define AT91C_US_USMODE_ISO7816_0 ((unsigned int) 0x4) /* (USART) ISO7816 protocol: T = 0 */ -#define AT91C_US_USMODE_ISO7816_1 ((unsigned int) 0x6) /* (USART) ISO7816 protocol: T = 1 */ -#define AT91C_US_USMODE_IRDA ((unsigned int) 0x8) /* (USART) IrDA */ -#define AT91C_US_USMODE_SWHSH ((unsigned int) 0xC) /* (USART) Software Handshaking */ +#define AT91C_US_USMODE_NORMAL ((unsigned int) 0x0) /* (USART) Normal */ +#define AT91C_US_USMODE_RS485 ((unsigned int) 0x1) /* (USART) RS485 */ +#define AT91C_US_USMODE_HWHSH ((unsigned int) 0x2) /* (USART) Hardware Handshaking */ +#define AT91C_US_USMODE_MODEM ((unsigned int) 0x3) /* (USART) Modem */ +#define AT91C_US_USMODE_ISO7816_0 ((unsigned int) 0x4) /* (USART) ISO7816 protocol: T = 0 */ +#define AT91C_US_USMODE_ISO7816_1 ((unsigned int) 0x6) /* (USART) ISO7816 protocol: T = 1 */ +#define AT91C_US_USMODE_IRDA ((unsigned int) 0x8) /* (USART) IrDA */ +#define AT91C_US_USMODE_SWHSH ((unsigned int) 0xC) /* (USART) Software Handshaking */ #define AT91C_US_CLKS ((unsigned int) 0x3 << 4) /* (USART) Clock Selection (Baud Rate generator Input Clock */ -#define AT91C_US_CLKS_CLOCK ((unsigned int) 0x0 << 4) /* (USART) Clock */ -#define AT91C_US_CLKS_FDIV1 ((unsigned int) 0x1 << 4) /* (USART) fdiv1 */ -#define AT91C_US_CLKS_SLOW ((unsigned int) 0x2 << 4) /* (USART) slow_clock (ARM) */ -#define AT91C_US_CLKS_EXT ((unsigned int) 0x3 << 4) /* (USART) External (SCK) */ +#define AT91C_US_CLKS_CLOCK ((unsigned int) 0x0 << 4) /* (USART) Clock */ +#define AT91C_US_CLKS_FDIV1 ((unsigned int) 0x1 << 4) /* (USART) fdiv1 */ +#define AT91C_US_CLKS_SLOW ((unsigned int) 0x2 << 4) /* (USART) slow_clock (ARM) */ +#define AT91C_US_CLKS_EXT ((unsigned int) 0x3 << 4) /* (USART) External (SCK) */ #define AT91C_US_CHRL ((unsigned int) 0x3 << 6) /* (USART) Clock Selection (Baud Rate generator Input Clock */ -#define AT91C_US_CHRL_5_BITS ((unsigned int) 0x0 << 6) /* (USART) Character Length: 5 bits */ -#define AT91C_US_CHRL_6_BITS ((unsigned int) 0x1 << 6) /* (USART) Character Length: 6 bits */ -#define AT91C_US_CHRL_7_BITS ((unsigned int) 0x2 << 6) /* (USART) Character Length: 7 bits */ -#define AT91C_US_CHRL_8_BITS ((unsigned int) 0x3 << 6) /* (USART) Character Length: 8 bits */ +#define AT91C_US_CHRL_5_BITS ((unsigned int) 0x0 << 6) /* (USART) Character Length: 5 bits */ +#define AT91C_US_CHRL_6_BITS ((unsigned int) 0x1 << 6) /* (USART) Character Length: 6 bits */ +#define AT91C_US_CHRL_7_BITS ((unsigned int) 0x2 << 6) /* (USART) Character Length: 7 bits */ +#define AT91C_US_CHRL_8_BITS ((unsigned int) 0x3 << 6) /* (USART) Character Length: 8 bits */ #define AT91C_US_SYNC ((unsigned int) 0x1 << 8) /* (USART) Synchronous Mode Select */ #define AT91C_US_NBSTOP ((unsigned int) 0x3 << 12) /* (USART) Number of Stop bits */ -#define AT91C_US_NBSTOP_1_BIT ((unsigned int) 0x0 << 12) /* (USART) 1 stop bit */ -#define AT91C_US_NBSTOP_15_BIT ((unsigned int) 0x1 << 12) /* (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits */ -#define AT91C_US_NBSTOP_2_BIT ((unsigned int) 0x2 << 12) /* (USART) 2 stop bits */ +#define AT91C_US_NBSTOP_1_BIT ((unsigned int) 0x0 << 12) /* (USART) 1 stop bit */ +#define AT91C_US_NBSTOP_15_BIT ((unsigned int) 0x1 << 12) /* (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits */ +#define AT91C_US_NBSTOP_2_BIT ((unsigned int) 0x2 << 12) /* (USART) 2 stop bits */ #define AT91C_US_MSBF ((unsigned int) 0x1 << 16) /* (USART) Bit Order */ #define AT91C_US_MODE9 ((unsigned int) 0x1 << 17) /* (USART) 9-bit Character length */ #define AT91C_US_CKLO ((unsigned int) 0x1 << 18) /* (USART) Clock Output Select */ @@ -1059,10 +1059,10 @@ typedef struct _AT91S_TWI { #define AT91C_TWI_SWRST ((unsigned int) 0x1 << 7) /* (TWI) Software Reset */ /* -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- */ #define AT91C_TWI_IADRSZ ((unsigned int) 0x3 << 8) /* (TWI) Internal Device Address Size */ -#define AT91C_TWI_IADRSZ_NO ((unsigned int) 0x0 << 8) /* (TWI) No internal device address */ -#define AT91C_TWI_IADRSZ_1_BYTE ((unsigned int) 0x1 << 8) /* (TWI) One-byte internal device address */ -#define AT91C_TWI_IADRSZ_2_BYTE ((unsigned int) 0x2 << 8) /* (TWI) Two-byte internal device address */ -#define AT91C_TWI_IADRSZ_3_BYTE ((unsigned int) 0x3 << 8) /* (TWI) Three-byte internal device address */ +#define AT91C_TWI_IADRSZ_NO ((unsigned int) 0x0 << 8) /* (TWI) No internal device address */ +#define AT91C_TWI_IADRSZ_1_BYTE ((unsigned int) 0x1 << 8) /* (TWI) One-byte internal device address */ +#define AT91C_TWI_IADRSZ_2_BYTE ((unsigned int) 0x2 << 8) /* (TWI) Two-byte internal device address */ +#define AT91C_TWI_IADRSZ_3_BYTE ((unsigned int) 0x3 << 8) /* (TWI) Three-byte internal device address */ #define AT91C_TWI_MREAD ((unsigned int) 0x1 << 12) /* (TWI) Master Read Direction */ #define AT91C_TWI_DADR ((unsigned int) 0x7F << 16) /* (TWI) Device Address */ /* -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- */ @@ -1104,98 +1104,98 @@ typedef struct _AT91S_TC { #define AT91C_TC_SWTRG ((unsigned int) 0x1 << 2) /* (TC) Software Trigger Command */ /* -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- */ #define AT91C_TC_CLKS ((unsigned int) 0x7 << 0) /* (TC) Clock Selection */ -#define AT91C_TC_CLKS_TIMER_DIV1_CLOCK ((unsigned int) 0x0) /* (TC) Clock selected: TIMER_DIV1_CLOCK */ -#define AT91C_TC_CLKS_TIMER_DIV2_CLOCK ((unsigned int) 0x1) /* (TC) Clock selected: TIMER_DIV2_CLOCK */ -#define AT91C_TC_CLKS_TIMER_DIV3_CLOCK ((unsigned int) 0x2) /* (TC) Clock selected: TIMER_DIV3_CLOCK */ -#define AT91C_TC_CLKS_TIMER_DIV4_CLOCK ((unsigned int) 0x3) /* (TC) Clock selected: TIMER_DIV4_CLOCK */ -#define AT91C_TC_CLKS_TIMER_DIV5_CLOCK ((unsigned int) 0x4) /* (TC) Clock selected: TIMER_DIV5_CLOCK */ -#define AT91C_TC_CLKS_XC0 ((unsigned int) 0x5) /* (TC) Clock selected: XC0 */ -#define AT91C_TC_CLKS_XC1 ((unsigned int) 0x6) /* (TC) Clock selected: XC1 */ -#define AT91C_TC_CLKS_XC2 ((unsigned int) 0x7) /* (TC) Clock selected: XC2 */ +#define AT91C_TC_CLKS_TIMER_DIV1_CLOCK ((unsigned int) 0x0) /* (TC) Clock selected: TIMER_DIV1_CLOCK */ +#define AT91C_TC_CLKS_TIMER_DIV2_CLOCK ((unsigned int) 0x1) /* (TC) Clock selected: TIMER_DIV2_CLOCK */ +#define AT91C_TC_CLKS_TIMER_DIV3_CLOCK ((unsigned int) 0x2) /* (TC) Clock selected: TIMER_DIV3_CLOCK */ +#define AT91C_TC_CLKS_TIMER_DIV4_CLOCK ((unsigned int) 0x3) /* (TC) Clock selected: TIMER_DIV4_CLOCK */ +#define AT91C_TC_CLKS_TIMER_DIV5_CLOCK ((unsigned int) 0x4) /* (TC) Clock selected: TIMER_DIV5_CLOCK */ +#define AT91C_TC_CLKS_XC0 ((unsigned int) 0x5) /* (TC) Clock selected: XC0 */ +#define AT91C_TC_CLKS_XC1 ((unsigned int) 0x6) /* (TC) Clock selected: XC1 */ +#define AT91C_TC_CLKS_XC2 ((unsigned int) 0x7) /* (TC) Clock selected: XC2 */ #define AT91C_TC_CLKI ((unsigned int) 0x1 << 3) /* (TC) Clock Invert */ #define AT91C_TC_BURST ((unsigned int) 0x3 << 4) /* (TC) Burst Signal Selection */ -#define AT91C_TC_BURST_NONE ((unsigned int) 0x0 << 4) /* (TC) The clock is not gated by an external signal */ -#define AT91C_TC_BURST_XC0 ((unsigned int) 0x1 << 4) /* (TC) XC0 is ANDed with the selected clock */ -#define AT91C_TC_BURST_XC1 ((unsigned int) 0x2 << 4) /* (TC) XC1 is ANDed with the selected clock */ -#define AT91C_TC_BURST_XC2 ((unsigned int) 0x3 << 4) /* (TC) XC2 is ANDed with the selected clock */ +#define AT91C_TC_BURST_NONE ((unsigned int) 0x0 << 4) /* (TC) The clock is not gated by an external signal */ +#define AT91C_TC_BURST_XC0 ((unsigned int) 0x1 << 4) /* (TC) XC0 is ANDed with the selected clock */ +#define AT91C_TC_BURST_XC1 ((unsigned int) 0x2 << 4) /* (TC) XC1 is ANDed with the selected clock */ +#define AT91C_TC_BURST_XC2 ((unsigned int) 0x3 << 4) /* (TC) XC2 is ANDed with the selected clock */ #define AT91C_TC_CPCSTOP ((unsigned int) 0x1 << 6) /* (TC) Counter Clock Stopped with RC Compare */ #define AT91C_TC_LDBSTOP ((unsigned int) 0x1 << 6) /* (TC) Counter Clock Stopped with RB Loading */ #define AT91C_TC_CPCDIS ((unsigned int) 0x1 << 7) /* (TC) Counter Clock Disable with RC Compare */ #define AT91C_TC_LDBDIS ((unsigned int) 0x1 << 7) /* (TC) Counter Clock Disabled with RB Loading */ #define AT91C_TC_ETRGEDG ((unsigned int) 0x3 << 8) /* (TC) External Trigger Edge Selection */ -#define AT91C_TC_ETRGEDG_NONE ((unsigned int) 0x0 << 8) /* (TC) Edge: None */ -#define AT91C_TC_ETRGEDG_RISING ((unsigned int) 0x1 << 8) /* (TC) Edge: rising edge */ -#define AT91C_TC_ETRGEDG_FALLING ((unsigned int) 0x2 << 8) /* (TC) Edge: falling edge */ -#define AT91C_TC_ETRGEDG_BOTH ((unsigned int) 0x3 << 8) /* (TC) Edge: each edge */ +#define AT91C_TC_ETRGEDG_NONE ((unsigned int) 0x0 << 8) /* (TC) Edge: None */ +#define AT91C_TC_ETRGEDG_RISING ((unsigned int) 0x1 << 8) /* (TC) Edge: rising edge */ +#define AT91C_TC_ETRGEDG_FALLING ((unsigned int) 0x2 << 8) /* (TC) Edge: falling edge */ +#define AT91C_TC_ETRGEDG_BOTH ((unsigned int) 0x3 << 8) /* (TC) Edge: each edge */ #define AT91C_TC_EEVTEDG ((unsigned int) 0x3 << 8) /* (TC) External Event Edge Selection */ -#define AT91C_TC_EEVTEDG_NONE ((unsigned int) 0x0 << 8) /* (TC) Edge: None */ -#define AT91C_TC_EEVTEDG_RISING ((unsigned int) 0x1 << 8) /* (TC) Edge: rising edge */ -#define AT91C_TC_EEVTEDG_FALLING ((unsigned int) 0x2 << 8) /* (TC) Edge: falling edge */ -#define AT91C_TC_EEVTEDG_BOTH ((unsigned int) 0x3 << 8) /* (TC) Edge: each edge */ +#define AT91C_TC_EEVTEDG_NONE ((unsigned int) 0x0 << 8) /* (TC) Edge: None */ +#define AT91C_TC_EEVTEDG_RISING ((unsigned int) 0x1 << 8) /* (TC) Edge: rising edge */ +#define AT91C_TC_EEVTEDG_FALLING ((unsigned int) 0x2 << 8) /* (TC) Edge: falling edge */ +#define AT91C_TC_EEVTEDG_BOTH ((unsigned int) 0x3 << 8) /* (TC) Edge: each edge */ #define AT91C_TC_EEVT ((unsigned int) 0x3 << 10) /* (TC) External Event Selection */ -#define AT91C_TC_EEVT_TIOB ((unsigned int) 0x0 << 10) /* (TC) Signal selected as external event: TIOB TIOB direction: input */ -#define AT91C_TC_EEVT_XC0 ((unsigned int) 0x1 << 10) /* (TC) Signal selected as external event: XC0 TIOB direction: output */ -#define AT91C_TC_EEVT_XC1 ((unsigned int) 0x2 << 10) /* (TC) Signal selected as external event: XC1 TIOB direction: output */ -#define AT91C_TC_EEVT_XC2 ((unsigned int) 0x3 << 10) /* (TC) Signal selected as external event: XC2 TIOB direction: output */ +#define AT91C_TC_EEVT_TIOB ((unsigned int) 0x0 << 10) /* (TC) Signal selected as external event: TIOB TIOB direction: input */ +#define AT91C_TC_EEVT_XC0 ((unsigned int) 0x1 << 10) /* (TC) Signal selected as external event: XC0 TIOB direction: output */ +#define AT91C_TC_EEVT_XC1 ((unsigned int) 0x2 << 10) /* (TC) Signal selected as external event: XC1 TIOB direction: output */ +#define AT91C_TC_EEVT_XC2 ((unsigned int) 0x3 << 10) /* (TC) Signal selected as external event: XC2 TIOB direction: output */ #define AT91C_TC_ABETRG ((unsigned int) 0x1 << 10) /* (TC) TIOA or TIOB External Trigger Selection */ #define AT91C_TC_ENETRG ((unsigned int) 0x1 << 12) /* (TC) External Event Trigger enable */ #define AT91C_TC_WAVESEL ((unsigned int) 0x3 << 13) /* (TC) Waveform Selection */ -#define AT91C_TC_WAVESEL_UP ((unsigned int) 0x0 << 13) /* (TC) UP mode without atomatic trigger on RC Compare */ -#define AT91C_TC_WAVESEL_UPDOWN ((unsigned int) 0x1 << 13) /* (TC) UPDOWN mode without automatic trigger on RC Compare */ -#define AT91C_TC_WAVESEL_UP_AUTO ((unsigned int) 0x2 << 13) /* (TC) UP mode with automatic trigger on RC Compare */ -#define AT91C_TC_WAVESEL_UPDOWN_AUTO ((unsigned int) 0x3 << 13) /* (TC) UPDOWN mode with automatic trigger on RC Compare */ +#define AT91C_TC_WAVESEL_UP ((unsigned int) 0x0 << 13) /* (TC) UP mode without atomatic trigger on RC Compare */ +#define AT91C_TC_WAVESEL_UPDOWN ((unsigned int) 0x1 << 13) /* (TC) UPDOWN mode without automatic trigger on RC Compare */ +#define AT91C_TC_WAVESEL_UP_AUTO ((unsigned int) 0x2 << 13) /* (TC) UP mode with automatic trigger on RC Compare */ +#define AT91C_TC_WAVESEL_UPDOWN_AUTO ((unsigned int) 0x3 << 13) /* (TC) UPDOWN mode with automatic trigger on RC Compare */ #define AT91C_TC_CPCTRG ((unsigned int) 0x1 << 14) /* (TC) RC Compare Trigger Enable */ #define AT91C_TC_WAVE ((unsigned int) 0x1 << 15) /* (TC) */ #define AT91C_TC_ACPA ((unsigned int) 0x3 << 16) /* (TC) RA Compare Effect on TIOA */ -#define AT91C_TC_ACPA_NONE ((unsigned int) 0x0 << 16) /* (TC) Effect: none */ -#define AT91C_TC_ACPA_SET ((unsigned int) 0x1 << 16) /* (TC) Effect: set */ -#define AT91C_TC_ACPA_CLEAR ((unsigned int) 0x2 << 16) /* (TC) Effect: clear */ -#define AT91C_TC_ACPA_TOGGLE ((unsigned int) 0x3 << 16) /* (TC) Effect: toggle */ +#define AT91C_TC_ACPA_NONE ((unsigned int) 0x0 << 16) /* (TC) Effect: none */ +#define AT91C_TC_ACPA_SET ((unsigned int) 0x1 << 16) /* (TC) Effect: set */ +#define AT91C_TC_ACPA_CLEAR ((unsigned int) 0x2 << 16) /* (TC) Effect: clear */ +#define AT91C_TC_ACPA_TOGGLE ((unsigned int) 0x3 << 16) /* (TC) Effect: toggle */ #define AT91C_TC_LDRA ((unsigned int) 0x3 << 16) /* (TC) RA Loading Selection */ -#define AT91C_TC_LDRA_NONE ((unsigned int) 0x0 << 16) /* (TC) Edge: None */ -#define AT91C_TC_LDRA_RISING ((unsigned int) 0x1 << 16) /* (TC) Edge: rising edge of TIOA */ -#define AT91C_TC_LDRA_FALLING ((unsigned int) 0x2 << 16) /* (TC) Edge: falling edge of TIOA */ -#define AT91C_TC_LDRA_BOTH ((unsigned int) 0x3 << 16) /* (TC) Edge: each edge of TIOA */ +#define AT91C_TC_LDRA_NONE ((unsigned int) 0x0 << 16) /* (TC) Edge: None */ +#define AT91C_TC_LDRA_RISING ((unsigned int) 0x1 << 16) /* (TC) Edge: rising edge of TIOA */ +#define AT91C_TC_LDRA_FALLING ((unsigned int) 0x2 << 16) /* (TC) Edge: falling edge of TIOA */ +#define AT91C_TC_LDRA_BOTH ((unsigned int) 0x3 << 16) /* (TC) Edge: each edge of TIOA */ #define AT91C_TC_ACPC ((unsigned int) 0x3 << 18) /* (TC) RC Compare Effect on TIOA */ -#define AT91C_TC_ACPC_NONE ((unsigned int) 0x0 << 18) /* (TC) Effect: none */ -#define AT91C_TC_ACPC_SET ((unsigned int) 0x1 << 18) /* (TC) Effect: set */ -#define AT91C_TC_ACPC_CLEAR ((unsigned int) 0x2 << 18) /* (TC) Effect: clear */ -#define AT91C_TC_ACPC_TOGGLE ((unsigned int) 0x3 << 18) /* (TC) Effect: toggle */ +#define AT91C_TC_ACPC_NONE ((unsigned int) 0x0 << 18) /* (TC) Effect: none */ +#define AT91C_TC_ACPC_SET ((unsigned int) 0x1 << 18) /* (TC) Effect: set */ +#define AT91C_TC_ACPC_CLEAR ((unsigned int) 0x2 << 18) /* (TC) Effect: clear */ +#define AT91C_TC_ACPC_TOGGLE ((unsigned int) 0x3 << 18) /* (TC) Effect: toggle */ #define AT91C_TC_LDRB ((unsigned int) 0x3 << 18) /* (TC) RB Loading Selection */ -#define AT91C_TC_LDRB_NONE ((unsigned int) 0x0 << 18) /* (TC) Edge: None */ -#define AT91C_TC_LDRB_RISING ((unsigned int) 0x1 << 18) /* (TC) Edge: rising edge of TIOA */ -#define AT91C_TC_LDRB_FALLING ((unsigned int) 0x2 << 18) /* (TC) Edge: falling edge of TIOA */ -#define AT91C_TC_LDRB_BOTH ((unsigned int) 0x3 << 18) /* (TC) Edge: each edge of TIOA */ +#define AT91C_TC_LDRB_NONE ((unsigned int) 0x0 << 18) /* (TC) Edge: None */ +#define AT91C_TC_LDRB_RISING ((unsigned int) 0x1 << 18) /* (TC) Edge: rising edge of TIOA */ +#define AT91C_TC_LDRB_FALLING ((unsigned int) 0x2 << 18) /* (TC) Edge: falling edge of TIOA */ +#define AT91C_TC_LDRB_BOTH ((unsigned int) 0x3 << 18) /* (TC) Edge: each edge of TIOA */ #define AT91C_TC_AEEVT ((unsigned int) 0x3 << 20) /* (TC) External Event Effect on TIOA */ -#define AT91C_TC_AEEVT_NONE ((unsigned int) 0x0 << 20) /* (TC) Effect: none */ -#define AT91C_TC_AEEVT_SET ((unsigned int) 0x1 << 20) /* (TC) Effect: set */ -#define AT91C_TC_AEEVT_CLEAR ((unsigned int) 0x2 << 20) /* (TC) Effect: clear */ -#define AT91C_TC_AEEVT_TOGGLE ((unsigned int) 0x3 << 20) /* (TC) Effect: toggle */ +#define AT91C_TC_AEEVT_NONE ((unsigned int) 0x0 << 20) /* (TC) Effect: none */ +#define AT91C_TC_AEEVT_SET ((unsigned int) 0x1 << 20) /* (TC) Effect: set */ +#define AT91C_TC_AEEVT_CLEAR ((unsigned int) 0x2 << 20) /* (TC) Effect: clear */ +#define AT91C_TC_AEEVT_TOGGLE ((unsigned int) 0x3 << 20) /* (TC) Effect: toggle */ #define AT91C_TC_ASWTRG ((unsigned int) 0x3 << 22) /* (TC) Software Trigger Effect on TIOA */ -#define AT91C_TC_ASWTRG_NONE ((unsigned int) 0x0 << 22) /* (TC) Effect: none */ -#define AT91C_TC_ASWTRG_SET ((unsigned int) 0x1 << 22) /* (TC) Effect: set */ -#define AT91C_TC_ASWTRG_CLEAR ((unsigned int) 0x2 << 22) /* (TC) Effect: clear */ -#define AT91C_TC_ASWTRG_TOGGLE ((unsigned int) 0x3 << 22) /* (TC) Effect: toggle */ +#define AT91C_TC_ASWTRG_NONE ((unsigned int) 0x0 << 22) /* (TC) Effect: none */ +#define AT91C_TC_ASWTRG_SET ((unsigned int) 0x1 << 22) /* (TC) Effect: set */ +#define AT91C_TC_ASWTRG_CLEAR ((unsigned int) 0x2 << 22) /* (TC) Effect: clear */ +#define AT91C_TC_ASWTRG_TOGGLE ((unsigned int) 0x3 << 22) /* (TC) Effect: toggle */ #define AT91C_TC_BCPB ((unsigned int) 0x3 << 24) /* (TC) RB Compare Effect on TIOB */ -#define AT91C_TC_BCPB_NONE ((unsigned int) 0x0 << 24) /* (TC) Effect: none */ -#define AT91C_TC_BCPB_SET ((unsigned int) 0x1 << 24) /* (TC) Effect: set */ -#define AT91C_TC_BCPB_CLEAR ((unsigned int) 0x2 << 24) /* (TC) Effect: clear */ -#define AT91C_TC_BCPB_TOGGLE ((unsigned int) 0x3 << 24) /* (TC) Effect: toggle */ +#define AT91C_TC_BCPB_NONE ((unsigned int) 0x0 << 24) /* (TC) Effect: none */ +#define AT91C_TC_BCPB_SET ((unsigned int) 0x1 << 24) /* (TC) Effect: set */ +#define AT91C_TC_BCPB_CLEAR ((unsigned int) 0x2 << 24) /* (TC) Effect: clear */ +#define AT91C_TC_BCPB_TOGGLE ((unsigned int) 0x3 << 24) /* (TC) Effect: toggle */ #define AT91C_TC_BCPC ((unsigned int) 0x3 << 26) /* (TC) RC Compare Effect on TIOB */ -#define AT91C_TC_BCPC_NONE ((unsigned int) 0x0 << 26) /* (TC) Effect: none */ -#define AT91C_TC_BCPC_SET ((unsigned int) 0x1 << 26) /* (TC) Effect: set */ -#define AT91C_TC_BCPC_CLEAR ((unsigned int) 0x2 << 26) /* (TC) Effect: clear */ -#define AT91C_TC_BCPC_TOGGLE ((unsigned int) 0x3 << 26) /* (TC) Effect: toggle */ +#define AT91C_TC_BCPC_NONE ((unsigned int) 0x0 << 26) /* (TC) Effect: none */ +#define AT91C_TC_BCPC_SET ((unsigned int) 0x1 << 26) /* (TC) Effect: set */ +#define AT91C_TC_BCPC_CLEAR ((unsigned int) 0x2 << 26) /* (TC) Effect: clear */ +#define AT91C_TC_BCPC_TOGGLE ((unsigned int) 0x3 << 26) /* (TC) Effect: toggle */ #define AT91C_TC_BEEVT ((unsigned int) 0x3 << 28) /* (TC) External Event Effect on TIOB */ -#define AT91C_TC_BEEVT_NONE ((unsigned int) 0x0 << 28) /* (TC) Effect: none */ -#define AT91C_TC_BEEVT_SET ((unsigned int) 0x1 << 28) /* (TC) Effect: set */ -#define AT91C_TC_BEEVT_CLEAR ((unsigned int) 0x2 << 28) /* (TC) Effect: clear */ -#define AT91C_TC_BEEVT_TOGGLE ((unsigned int) 0x3 << 28) /* (TC) Effect: toggle */ +#define AT91C_TC_BEEVT_NONE ((unsigned int) 0x0 << 28) /* (TC) Effect: none */ +#define AT91C_TC_BEEVT_SET ((unsigned int) 0x1 << 28) /* (TC) Effect: set */ +#define AT91C_TC_BEEVT_CLEAR ((unsigned int) 0x2 << 28) /* (TC) Effect: clear */ +#define AT91C_TC_BEEVT_TOGGLE ((unsigned int) 0x3 << 28) /* (TC) Effect: toggle */ #define AT91C_TC_BSWTRG ((unsigned int) 0x3 << 30) /* (TC) Software Trigger Effect on TIOB */ -#define AT91C_TC_BSWTRG_NONE ((unsigned int) 0x0 << 30) /* (TC) Effect: none */ -#define AT91C_TC_BSWTRG_SET ((unsigned int) 0x1 << 30) /* (TC) Effect: set */ -#define AT91C_TC_BSWTRG_CLEAR ((unsigned int) 0x2 << 30) /* (TC) Effect: clear */ -#define AT91C_TC_BSWTRG_TOGGLE ((unsigned int) 0x3 << 30) /* (TC) Effect: toggle */ +#define AT91C_TC_BSWTRG_NONE ((unsigned int) 0x0 << 30) /* (TC) Effect: none */ +#define AT91C_TC_BSWTRG_SET ((unsigned int) 0x1 << 30) /* (TC) Effect: set */ +#define AT91C_TC_BSWTRG_CLEAR ((unsigned int) 0x2 << 30) /* (TC) Effect: clear */ +#define AT91C_TC_BSWTRG_TOGGLE ((unsigned int) 0x3 << 30) /* (TC) Effect: toggle */ /* -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- */ #define AT91C_TC_COVFS ((unsigned int) 0x1 << 0) /* (TC) Counter Overflow */ #define AT91C_TC_LOVRS ((unsigned int) 0x1 << 1) /* (TC) Load Overrun */ @@ -1231,20 +1231,20 @@ typedef struct _AT91S_TCB { #define AT91C_TCB_SYNC ((unsigned int) 0x1 << 0) /* (TCB) Synchro Command */ /* -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- */ #define AT91C_TCB_TC0XC0S ((unsigned int) 0x3 << 0) /* (TCB) External Clock Signal 0 Selection */ -#define AT91C_TCB_TC0XC0S_TCLK0 ((unsigned int) 0x0) /* (TCB) TCLK0 connected to XC0 */ -#define AT91C_TCB_TC0XC0S_NONE ((unsigned int) 0x1) /* (TCB) None signal connected to XC0 */ -#define AT91C_TCB_TC0XC0S_TIOA1 ((unsigned int) 0x2) /* (TCB) TIOA1 connected to XC0 */ -#define AT91C_TCB_TC0XC0S_TIOA2 ((unsigned int) 0x3) /* (TCB) TIOA2 connected to XC0 */ +#define AT91C_TCB_TC0XC0S_TCLK0 ((unsigned int) 0x0) /* (TCB) TCLK0 connected to XC0 */ +#define AT91C_TCB_TC0XC0S_NONE ((unsigned int) 0x1) /* (TCB) None signal connected to XC0 */ +#define AT91C_TCB_TC0XC0S_TIOA1 ((unsigned int) 0x2) /* (TCB) TIOA1 connected to XC0 */ +#define AT91C_TCB_TC0XC0S_TIOA2 ((unsigned int) 0x3) /* (TCB) TIOA2 connected to XC0 */ #define AT91C_TCB_TC1XC1S ((unsigned int) 0x3 << 2) /* (TCB) External Clock Signal 1 Selection */ -#define AT91C_TCB_TC1XC1S_TCLK1 ((unsigned int) 0x0 << 2) /* (TCB) TCLK1 connected to XC1 */ -#define AT91C_TCB_TC1XC1S_NONE ((unsigned int) 0x1 << 2) /* (TCB) None signal connected to XC1 */ -#define AT91C_TCB_TC1XC1S_TIOA0 ((unsigned int) 0x2 << 2) /* (TCB) TIOA0 connected to XC1 */ -#define AT91C_TCB_TC1XC1S_TIOA2 ((unsigned int) 0x3 << 2) /* (TCB) TIOA2 connected to XC1 */ +#define AT91C_TCB_TC1XC1S_TCLK1 ((unsigned int) 0x0 << 2) /* (TCB) TCLK1 connected to XC1 */ +#define AT91C_TCB_TC1XC1S_NONE ((unsigned int) 0x1 << 2) /* (TCB) None signal connected to XC1 */ +#define AT91C_TCB_TC1XC1S_TIOA0 ((unsigned int) 0x2 << 2) /* (TCB) TIOA0 connected to XC1 */ +#define AT91C_TCB_TC1XC1S_TIOA2 ((unsigned int) 0x3 << 2) /* (TCB) TIOA2 connected to XC1 */ #define AT91C_TCB_TC2XC2S ((unsigned int) 0x3 << 4) /* (TCB) External Clock Signal 2 Selection */ -#define AT91C_TCB_TC2XC2S_TCLK2 ((unsigned int) 0x0 << 4) /* (TCB) TCLK2 connected to XC2 */ -#define AT91C_TCB_TC2XC2S_NONE ((unsigned int) 0x1 << 4) /* (TCB) None signal connected to XC2 */ -#define AT91C_TCB_TC2XC2S_TIOA0 ((unsigned int) 0x2 << 4) /* (TCB) TIOA0 connected to XC2 */ -#define AT91C_TCB_TC2XC2S_TIOA1 ((unsigned int) 0x3 << 4) /* (TCB) TIOA2 connected to XC2 */ +#define AT91C_TCB_TC2XC2S_TCLK2 ((unsigned int) 0x0 << 4) /* (TCB) TCLK2 connected to XC2 */ +#define AT91C_TCB_TC2XC2S_NONE ((unsigned int) 0x1 << 4) /* (TCB) None signal connected to XC2 */ +#define AT91C_TCB_TC2XC2S_TIOA0 ((unsigned int) 0x2 << 4) /* (TCB) TIOA0 connected to XC2 */ +#define AT91C_TCB_TC2XC2S_TIOA1 ((unsigned int) 0x3 << 4) /* (TCB) TIOA2 connected to XC2 */ /* ***************************************************************************** */ /* SOFTWARE API DEFINITION FOR PWMC Channel Interface */ @@ -1261,9 +1261,9 @@ typedef struct _AT91S_PWMC_CH { /* -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- */ #define AT91C_PWMC_CPRE ((unsigned int) 0xF << 0) /* (PWMC_CH) Channel Pre-scaler : PWMC_CLKx */ -#define AT91C_PWMC_CPRE_MCK ((unsigned int) 0x0) /* (PWMC_CH) */ -#define AT91C_PWMC_CPRE_MCKA ((unsigned int) 0xB) /* (PWMC_CH) */ -#define AT91C_PWMC_CPRE_MCKB ((unsigned int) 0xC) /* (PWMC_CH) */ +#define AT91C_PWMC_CPRE_MCK ((unsigned int) 0x0) /* (PWMC_CH) */ +#define AT91C_PWMC_CPRE_MCKA ((unsigned int) 0xB) /* (PWMC_CH) */ +#define AT91C_PWMC_CPRE_MCKB ((unsigned int) 0xC) /* (PWMC_CH) */ #define AT91C_PWMC_CALG ((unsigned int) 0x1 << 8) /* (PWMC_CH) Channel Alignment */ #define AT91C_PWMC_CPOL ((unsigned int) 0x1 << 9) /* (PWMC_CH) Channel Polarity */ #define AT91C_PWMC_CPD ((unsigned int) 0x1 << 10) /* (PWMC_CH) Channel Update Period */ @@ -1298,10 +1298,10 @@ typedef struct _AT91S_PWMC { /* -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- */ #define AT91C_PWMC_DIVA ((unsigned int) 0xFF << 0) /* (PWMC) CLKA divide factor. */ #define AT91C_PWMC_PREA ((unsigned int) 0xF << 8) /* (PWMC) Divider Input Clock Prescaler A */ -#define AT91C_PWMC_PREA_MCK ((unsigned int) 0x0 << 8) /* (PWMC) */ +#define AT91C_PWMC_PREA_MCK ((unsigned int) 0x0 << 8) /* (PWMC) */ #define AT91C_PWMC_DIVB ((unsigned int) 0xFF << 16) /* (PWMC) CLKB divide factor. */ #define AT91C_PWMC_PREB ((unsigned int) 0xF << 24) /* (PWMC) Divider Input Clock Prescaler B */ -#define AT91C_PWMC_PREB_MCK ((unsigned int) 0x0 << 24) /* (PWMC) */ +#define AT91C_PWMC_PREB_MCK ((unsigned int) 0x0 << 24) /* (PWMC) */ /* -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- */ #define AT91C_PWMC_CHID0 ((unsigned int) 0x1 << 0) /* (PWMC) Channel ID 0 */ #define AT91C_PWMC_CHID1 ((unsigned int) 0x1 << 1) /* (PWMC) Channel ID 1 */ @@ -1392,13 +1392,13 @@ typedef struct _AT91S_UDP { #define AT91C_UDP_RX_DATA_BK1 ((unsigned int) 0x1 << 6) /* (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes). */ #define AT91C_UDP_DIR ((unsigned int) 0x1 << 7) /* (UDP) Transfer Direction */ #define AT91C_UDP_EPTYPE ((unsigned int) 0x7 << 8) /* (UDP) Endpoint type */ -#define AT91C_UDP_EPTYPE_CTRL ((unsigned int) 0x0 << 8) /* (UDP) Control */ -#define AT91C_UDP_EPTYPE_ISO_OUT ((unsigned int) 0x1 << 8) /* (UDP) Isochronous OUT */ -#define AT91C_UDP_EPTYPE_BULK_OUT ((unsigned int) 0x2 << 8) /* (UDP) Bulk OUT */ -#define AT91C_UDP_EPTYPE_INT_OUT ((unsigned int) 0x3 << 8) /* (UDP) Interrupt OUT */ -#define AT91C_UDP_EPTYPE_ISO_IN ((unsigned int) 0x5 << 8) /* (UDP) Isochronous IN */ -#define AT91C_UDP_EPTYPE_BULK_IN ((unsigned int) 0x6 << 8) /* (UDP) Bulk IN */ -#define AT91C_UDP_EPTYPE_INT_IN ((unsigned int) 0x7 << 8) /* (UDP) Interrupt IN */ +#define AT91C_UDP_EPTYPE_CTRL ((unsigned int) 0x0 << 8) /* (UDP) Control */ +#define AT91C_UDP_EPTYPE_ISO_OUT ((unsigned int) 0x1 << 8) /* (UDP) Isochronous OUT */ +#define AT91C_UDP_EPTYPE_BULK_OUT ((unsigned int) 0x2 << 8) /* (UDP) Bulk OUT */ +#define AT91C_UDP_EPTYPE_INT_OUT ((unsigned int) 0x3 << 8) /* (UDP) Interrupt OUT */ +#define AT91C_UDP_EPTYPE_ISO_IN ((unsigned int) 0x5 << 8) /* (UDP) Isochronous IN */ +#define AT91C_UDP_EPTYPE_BULK_IN ((unsigned int) 0x6 << 8) /* (UDP) Bulk IN */ +#define AT91C_UDP_EPTYPE_INT_IN ((unsigned int) 0x7 << 8) /* (UDP) Interrupt IN */ #define AT91C_UDP_DTGLE ((unsigned int) 0x1 << 11) /* (UDP) Data Toggle */ #define AT91C_UDP_EPEDS ((unsigned int) 0x1 << 15) /* (UDP) Endpoint Enable Disable */ #define AT91C_UDP_RXBYTECNT ((unsigned int) 0x7FF << 16) /* (UDP) Number Of Bytes Available in the FIFO */ @@ -1411,352 +1411,352 @@ typedef struct _AT91S_UDP { /* ***************************************************************************** */ /* ========== Register definition for SYS peripheral ========== */ /* ========== Register definition for AIC peripheral ========== */ -#define AT91C_AIC_IVR ((AT91_REG *) 0xFFFFF100) /* (AIC) IRQ Vector Register */ -#define AT91C_AIC_SMR ((AT91_REG *) 0xFFFFF000) /* (AIC) Source Mode Register */ -#define AT91C_AIC_FVR ((AT91_REG *) 0xFFFFF104) /* (AIC) FIQ Vector Register */ -#define AT91C_AIC_DCR ((AT91_REG *) 0xFFFFF138) /* (AIC) Debug Control Register (Protect) */ -#define AT91C_AIC_EOICR ((AT91_REG *) 0xFFFFF130) /* (AIC) End of Interrupt Command Register */ -#define AT91C_AIC_SVR ((AT91_REG *) 0xFFFFF080) /* (AIC) Source Vector Register */ -#define AT91C_AIC_FFSR ((AT91_REG *) 0xFFFFF148) /* (AIC) Fast Forcing Status Register */ -#define AT91C_AIC_ICCR ((AT91_REG *) 0xFFFFF128) /* (AIC) Interrupt Clear Command Register */ -#define AT91C_AIC_ISR ((AT91_REG *) 0xFFFFF108) /* (AIC) Interrupt Status Register */ -#define AT91C_AIC_IMR ((AT91_REG *) 0xFFFFF110) /* (AIC) Interrupt Mask Register */ -#define AT91C_AIC_IPR ((AT91_REG *) 0xFFFFF10C) /* (AIC) Interrupt Pending Register */ -#define AT91C_AIC_FFER ((AT91_REG *) 0xFFFFF140) /* (AIC) Fast Forcing Enable Register */ -#define AT91C_AIC_IECR ((AT91_REG *) 0xFFFFF120) /* (AIC) Interrupt Enable Command Register */ -#define AT91C_AIC_ISCR ((AT91_REG *) 0xFFFFF12C) /* (AIC) Interrupt Set Command Register */ -#define AT91C_AIC_FFDR ((AT91_REG *) 0xFFFFF144) /* (AIC) Fast Forcing Disable Register */ -#define AT91C_AIC_CISR ((AT91_REG *) 0xFFFFF114) /* (AIC) Core Interrupt Status Register */ -#define AT91C_AIC_IDCR ((AT91_REG *) 0xFFFFF124) /* (AIC) Interrupt Disable Command Register */ -#define AT91C_AIC_SPU ((AT91_REG *) 0xFFFFF134) /* (AIC) Spurious Vector Register */ +#define AT91C_AIC_IVR ((AT91_REG *) 0xFFFFF100) /* (AIC) IRQ Vector Register */ +#define AT91C_AIC_SMR ((AT91_REG *) 0xFFFFF000) /* (AIC) Source Mode Register */ +#define AT91C_AIC_FVR ((AT91_REG *) 0xFFFFF104) /* (AIC) FIQ Vector Register */ +#define AT91C_AIC_DCR ((AT91_REG *) 0xFFFFF138) /* (AIC) Debug Control Register (Protect) */ +#define AT91C_AIC_EOICR ((AT91_REG *) 0xFFFFF130) /* (AIC) End of Interrupt Command Register */ +#define AT91C_AIC_SVR ((AT91_REG *) 0xFFFFF080) /* (AIC) Source Vector Register */ +#define AT91C_AIC_FFSR ((AT91_REG *) 0xFFFFF148) /* (AIC) Fast Forcing Status Register */ +#define AT91C_AIC_ICCR ((AT91_REG *) 0xFFFFF128) /* (AIC) Interrupt Clear Command Register */ +#define AT91C_AIC_ISR ((AT91_REG *) 0xFFFFF108) /* (AIC) Interrupt Status Register */ +#define AT91C_AIC_IMR ((AT91_REG *) 0xFFFFF110) /* (AIC) Interrupt Mask Register */ +#define AT91C_AIC_IPR ((AT91_REG *) 0xFFFFF10C) /* (AIC) Interrupt Pending Register */ +#define AT91C_AIC_FFER ((AT91_REG *) 0xFFFFF140) /* (AIC) Fast Forcing Enable Register */ +#define AT91C_AIC_IECR ((AT91_REG *) 0xFFFFF120) /* (AIC) Interrupt Enable Command Register */ +#define AT91C_AIC_ISCR ((AT91_REG *) 0xFFFFF12C) /* (AIC) Interrupt Set Command Register */ +#define AT91C_AIC_FFDR ((AT91_REG *) 0xFFFFF144) /* (AIC) Fast Forcing Disable Register */ +#define AT91C_AIC_CISR ((AT91_REG *) 0xFFFFF114) /* (AIC) Core Interrupt Status Register */ +#define AT91C_AIC_IDCR ((AT91_REG *) 0xFFFFF124) /* (AIC) Interrupt Disable Command Register */ +#define AT91C_AIC_SPU ((AT91_REG *) 0xFFFFF134) /* (AIC) Spurious Vector Register */ /* ========== Register definition for PDC_DBGU peripheral ========== */ -#define AT91C_DBGU_TCR ((AT91_REG *) 0xFFFFF30C) /* (PDC_DBGU) Transmit Counter Register */ -#define AT91C_DBGU_RNPR ((AT91_REG *) 0xFFFFF310) /* (PDC_DBGU) Receive Next Pointer Register */ -#define AT91C_DBGU_TNPR ((AT91_REG *) 0xFFFFF318) /* (PDC_DBGU) Transmit Next Pointer Register */ -#define AT91C_DBGU_TPR ((AT91_REG *) 0xFFFFF308) /* (PDC_DBGU) Transmit Pointer Register */ -#define AT91C_DBGU_RPR ((AT91_REG *) 0xFFFFF300) /* (PDC_DBGU) Receive Pointer Register */ -#define AT91C_DBGU_RCR ((AT91_REG *) 0xFFFFF304) /* (PDC_DBGU) Receive Counter Register */ -#define AT91C_DBGU_RNCR ((AT91_REG *) 0xFFFFF314) /* (PDC_DBGU) Receive Next Counter Register */ -#define AT91C_DBGU_PTCR ((AT91_REG *) 0xFFFFF320) /* (PDC_DBGU) PDC Transfer Control Register */ -#define AT91C_DBGU_PTSR ((AT91_REG *) 0xFFFFF324) /* (PDC_DBGU) PDC Transfer Status Register */ -#define AT91C_DBGU_TNCR ((AT91_REG *) 0xFFFFF31C) /* (PDC_DBGU) Transmit Next Counter Register */ +#define AT91C_DBGU_TCR ((AT91_REG *) 0xFFFFF30C) /* (PDC_DBGU) Transmit Counter Register */ +#define AT91C_DBGU_RNPR ((AT91_REG *) 0xFFFFF310) /* (PDC_DBGU) Receive Next Pointer Register */ +#define AT91C_DBGU_TNPR ((AT91_REG *) 0xFFFFF318) /* (PDC_DBGU) Transmit Next Pointer Register */ +#define AT91C_DBGU_TPR ((AT91_REG *) 0xFFFFF308) /* (PDC_DBGU) Transmit Pointer Register */ +#define AT91C_DBGU_RPR ((AT91_REG *) 0xFFFFF300) /* (PDC_DBGU) Receive Pointer Register */ +#define AT91C_DBGU_RCR ((AT91_REG *) 0xFFFFF304) /* (PDC_DBGU) Receive Counter Register */ +#define AT91C_DBGU_RNCR ((AT91_REG *) 0xFFFFF314) /* (PDC_DBGU) Receive Next Counter Register */ +#define AT91C_DBGU_PTCR ((AT91_REG *) 0xFFFFF320) /* (PDC_DBGU) PDC Transfer Control Register */ +#define AT91C_DBGU_PTSR ((AT91_REG *) 0xFFFFF324) /* (PDC_DBGU) PDC Transfer Status Register */ +#define AT91C_DBGU_TNCR ((AT91_REG *) 0xFFFFF31C) /* (PDC_DBGU) Transmit Next Counter Register */ /* ========== Register definition for DBGU peripheral ========== */ -#define AT91C_DBGU_EXID ((AT91_REG *) 0xFFFFF244) /* (DBGU) Chip ID Extension Register */ -#define AT91C_DBGU_BRGR ((AT91_REG *) 0xFFFFF220) /* (DBGU) Baud Rate Generator Register */ -#define AT91C_DBGU_IDR ((AT91_REG *) 0xFFFFF20C) /* (DBGU) Interrupt Disable Register */ -#define AT91C_DBGU_CSR ((AT91_REG *) 0xFFFFF214) /* (DBGU) Channel Status Register */ -#define AT91C_DBGU_CIDR ((AT91_REG *) 0xFFFFF240) /* (DBGU) Chip ID Register */ -#define AT91C_DBGU_MR ((AT91_REG *) 0xFFFFF204) /* (DBGU) Mode Register */ -#define AT91C_DBGU_IMR ((AT91_REG *) 0xFFFFF210) /* (DBGU) Interrupt Mask Register */ -#define AT91C_DBGU_CR ((AT91_REG *) 0xFFFFF200) /* (DBGU) Control Register */ -#define AT91C_DBGU_FNTR ((AT91_REG *) 0xFFFFF248) /* (DBGU) Force NTRST Register */ -#define AT91C_DBGU_THR ((AT91_REG *) 0xFFFFF21C) /* (DBGU) Transmitter Holding Register */ -#define AT91C_DBGU_RHR ((AT91_REG *) 0xFFFFF218) /* (DBGU) Receiver Holding Register */ -#define AT91C_DBGU_IER ((AT91_REG *) 0xFFFFF208) /* (DBGU) Interrupt Enable Register */ +#define AT91C_DBGU_EXID ((AT91_REG *) 0xFFFFF244) /* (DBGU) Chip ID Extension Register */ +#define AT91C_DBGU_BRGR ((AT91_REG *) 0xFFFFF220) /* (DBGU) Baud Rate Generator Register */ +#define AT91C_DBGU_IDR ((AT91_REG *) 0xFFFFF20C) /* (DBGU) Interrupt Disable Register */ +#define AT91C_DBGU_CSR ((AT91_REG *) 0xFFFFF214) /* (DBGU) Channel Status Register */ +#define AT91C_DBGU_CIDR ((AT91_REG *) 0xFFFFF240) /* (DBGU) Chip ID Register */ +#define AT91C_DBGU_MR ((AT91_REG *) 0xFFFFF204) /* (DBGU) Mode Register */ +#define AT91C_DBGU_IMR ((AT91_REG *) 0xFFFFF210) /* (DBGU) Interrupt Mask Register */ +#define AT91C_DBGU_CR ((AT91_REG *) 0xFFFFF200) /* (DBGU) Control Register */ +#define AT91C_DBGU_FNTR ((AT91_REG *) 0xFFFFF248) /* (DBGU) Force NTRST Register */ +#define AT91C_DBGU_THR ((AT91_REG *) 0xFFFFF21C) /* (DBGU) Transmitter Holding Register */ +#define AT91C_DBGU_RHR ((AT91_REG *) 0xFFFFF218) /* (DBGU) Receiver Holding Register */ +#define AT91C_DBGU_IER ((AT91_REG *) 0xFFFFF208) /* (DBGU) Interrupt Enable Register */ /* ========== Register definition for PIOA peripheral ========== */ -#define AT91C_PIOA_ODR ((AT91_REG *) 0xFFFFF414) /* (PIOA) Output Disable Registerr */ -#define AT91C_PIOA_SODR ((AT91_REG *) 0xFFFFF430) /* (PIOA) Set Output Data Register */ -#define AT91C_PIOA_ISR ((AT91_REG *) 0xFFFFF44C) /* (PIOA) Interrupt Status Register */ -#define AT91C_PIOA_ABSR ((AT91_REG *) 0xFFFFF478) /* (PIOA) AB Select Status Register */ -#define AT91C_PIOA_IER ((AT91_REG *) 0xFFFFF440) /* (PIOA) Interrupt Enable Register */ -#define AT91C_PIOA_PPUDR ((AT91_REG *) 0xFFFFF460) /* (PIOA) Pull-up Disable Register */ -#define AT91C_PIOA_IMR ((AT91_REG *) 0xFFFFF448) /* (PIOA) Interrupt Mask Register */ -#define AT91C_PIOA_PER ((AT91_REG *) 0xFFFFF400) /* (PIOA) PIO Enable Register */ -#define AT91C_PIOA_IFDR ((AT91_REG *) 0xFFFFF424) /* (PIOA) Input Filter Disable Register */ -#define AT91C_PIOA_OWDR ((AT91_REG *) 0xFFFFF4A4) /* (PIOA) Output Write Disable Register */ -#define AT91C_PIOA_MDSR ((AT91_REG *) 0xFFFFF458) /* (PIOA) Multi-driver Status Register */ -#define AT91C_PIOA_IDR ((AT91_REG *) 0xFFFFF444) /* (PIOA) Interrupt Disable Register */ -#define AT91C_PIOA_ODSR ((AT91_REG *) 0xFFFFF438) /* (PIOA) Output Data Status Register */ -#define AT91C_PIOA_PPUSR ((AT91_REG *) 0xFFFFF468) /* (PIOA) Pull-up Status Register */ -#define AT91C_PIOA_OWSR ((AT91_REG *) 0xFFFFF4A8) /* (PIOA) Output Write Status Register */ -#define AT91C_PIOA_BSR ((AT91_REG *) 0xFFFFF474) /* (PIOA) Select B Register */ -#define AT91C_PIOA_OWER ((AT91_REG *) 0xFFFFF4A0) /* (PIOA) Output Write Enable Register */ -#define AT91C_PIOA_IFER ((AT91_REG *) 0xFFFFF420) /* (PIOA) Input Filter Enable Register */ -#define AT91C_PIOA_PDSR ((AT91_REG *) 0xFFFFF43C) /* (PIOA) Pin Data Status Register */ -#define AT91C_PIOA_PPUER ((AT91_REG *) 0xFFFFF464) /* (PIOA) Pull-up Enable Register */ -#define AT91C_PIOA_OSR ((AT91_REG *) 0xFFFFF418) /* (PIOA) Output Status Register */ -#define AT91C_PIOA_ASR ((AT91_REG *) 0xFFFFF470) /* (PIOA) Select A Register */ -#define AT91C_PIOA_MDDR ((AT91_REG *) 0xFFFFF454) /* (PIOA) Multi-driver Disable Register */ -#define AT91C_PIOA_CODR ((AT91_REG *) 0xFFFFF434) /* (PIOA) Clear Output Data Register */ -#define AT91C_PIOA_MDER ((AT91_REG *) 0xFFFFF450) /* (PIOA) Multi-driver Enable Register */ -#define AT91C_PIOA_PDR ((AT91_REG *) 0xFFFFF404) /* (PIOA) PIO Disable Register */ -#define AT91C_PIOA_IFSR ((AT91_REG *) 0xFFFFF428) /* (PIOA) Input Filter Status Register */ -#define AT91C_PIOA_OER ((AT91_REG *) 0xFFFFF410) /* (PIOA) Output Enable Register */ -#define AT91C_PIOA_PSR ((AT91_REG *) 0xFFFFF408) /* (PIOA) PIO Status Register */ +#define AT91C_PIOA_ODR ((AT91_REG *) 0xFFFFF414) /* (PIOA) Output Disable Registerr */ +#define AT91C_PIOA_SODR ((AT91_REG *) 0xFFFFF430) /* (PIOA) Set Output Data Register */ +#define AT91C_PIOA_ISR ((AT91_REG *) 0xFFFFF44C) /* (PIOA) Interrupt Status Register */ +#define AT91C_PIOA_ABSR ((AT91_REG *) 0xFFFFF478) /* (PIOA) AB Select Status Register */ +#define AT91C_PIOA_IER ((AT91_REG *) 0xFFFFF440) /* (PIOA) Interrupt Enable Register */ +#define AT91C_PIOA_PPUDR ((AT91_REG *) 0xFFFFF460) /* (PIOA) Pull-up Disable Register */ +#define AT91C_PIOA_IMR ((AT91_REG *) 0xFFFFF448) /* (PIOA) Interrupt Mask Register */ +#define AT91C_PIOA_PER ((AT91_REG *) 0xFFFFF400) /* (PIOA) PIO Enable Register */ +#define AT91C_PIOA_IFDR ((AT91_REG *) 0xFFFFF424) /* (PIOA) Input Filter Disable Register */ +#define AT91C_PIOA_OWDR ((AT91_REG *) 0xFFFFF4A4) /* (PIOA) Output Write Disable Register */ +#define AT91C_PIOA_MDSR ((AT91_REG *) 0xFFFFF458) /* (PIOA) Multi-driver Status Register */ +#define AT91C_PIOA_IDR ((AT91_REG *) 0xFFFFF444) /* (PIOA) Interrupt Disable Register */ +#define AT91C_PIOA_ODSR ((AT91_REG *) 0xFFFFF438) /* (PIOA) Output Data Status Register */ +#define AT91C_PIOA_PPUSR ((AT91_REG *) 0xFFFFF468) /* (PIOA) Pull-up Status Register */ +#define AT91C_PIOA_OWSR ((AT91_REG *) 0xFFFFF4A8) /* (PIOA) Output Write Status Register */ +#define AT91C_PIOA_BSR ((AT91_REG *) 0xFFFFF474) /* (PIOA) Select B Register */ +#define AT91C_PIOA_OWER ((AT91_REG *) 0xFFFFF4A0) /* (PIOA) Output Write Enable Register */ +#define AT91C_PIOA_IFER ((AT91_REG *) 0xFFFFF420) /* (PIOA) Input Filter Enable Register */ +#define AT91C_PIOA_PDSR ((AT91_REG *) 0xFFFFF43C) /* (PIOA) Pin Data Status Register */ +#define AT91C_PIOA_PPUER ((AT91_REG *) 0xFFFFF464) /* (PIOA) Pull-up Enable Register */ +#define AT91C_PIOA_OSR ((AT91_REG *) 0xFFFFF418) /* (PIOA) Output Status Register */ +#define AT91C_PIOA_ASR ((AT91_REG *) 0xFFFFF470) /* (PIOA) Select A Register */ +#define AT91C_PIOA_MDDR ((AT91_REG *) 0xFFFFF454) /* (PIOA) Multi-driver Disable Register */ +#define AT91C_PIOA_CODR ((AT91_REG *) 0xFFFFF434) /* (PIOA) Clear Output Data Register */ +#define AT91C_PIOA_MDER ((AT91_REG *) 0xFFFFF450) /* (PIOA) Multi-driver Enable Register */ +#define AT91C_PIOA_PDR ((AT91_REG *) 0xFFFFF404) /* (PIOA) PIO Disable Register */ +#define AT91C_PIOA_IFSR ((AT91_REG *) 0xFFFFF428) /* (PIOA) Input Filter Status Register */ +#define AT91C_PIOA_OER ((AT91_REG *) 0xFFFFF410) /* (PIOA) Output Enable Register */ +#define AT91C_PIOA_PSR ((AT91_REG *) 0xFFFFF408) /* (PIOA) PIO Status Register */ /* ========== Register definition for CKGR peripheral ========== */ -#define AT91C_CKGR_MOR ((AT91_REG *) 0xFFFFFC20) /* (CKGR) Main Oscillator Register */ -#define AT91C_CKGR_PLLR ((AT91_REG *) 0xFFFFFC2C) /* (CKGR) PLL Register */ -#define AT91C_CKGR_MCFR ((AT91_REG *) 0xFFFFFC24) /* (CKGR) Main Clock Frequency Register */ +#define AT91C_CKGR_MOR ((AT91_REG *) 0xFFFFFC20) /* (CKGR) Main Oscillator Register */ +#define AT91C_CKGR_PLLR ((AT91_REG *) 0xFFFFFC2C) /* (CKGR) PLL Register */ +#define AT91C_CKGR_MCFR ((AT91_REG *) 0xFFFFFC24) /* (CKGR) Main Clock Frequency Register */ /* ========== Register definition for PMC peripheral ========== */ -#define AT91C_PMC_IDR ((AT91_REG *) 0xFFFFFC64) /* (PMC) Interrupt Disable Register */ -#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) /* (PMC) Main Oscillator Register */ -#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) /* (PMC) PLL Register */ -#define AT91C_PMC_PCER ((AT91_REG *) 0xFFFFFC10) /* (PMC) Peripheral Clock Enable Register */ -#define AT91C_PMC_PCKR ((AT91_REG *) 0xFFFFFC40) /* (PMC) Programmable Clock Register */ -#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) /* (PMC) Master Clock Register */ -#define AT91C_PMC_SCDR ((AT91_REG *) 0xFFFFFC04) /* (PMC) System Clock Disable Register */ -#define AT91C_PMC_PCDR ((AT91_REG *) 0xFFFFFC14) /* (PMC) Peripheral Clock Disable Register */ -#define AT91C_PMC_SCSR ((AT91_REG *) 0xFFFFFC08) /* (PMC) System Clock Status Register */ -#define AT91C_PMC_PCSR ((AT91_REG *) 0xFFFFFC18) /* (PMC) Peripheral Clock Status Register */ -#define AT91C_PMC_MCFR ((AT91_REG *) 0xFFFFFC24) /* (PMC) Main Clock Frequency Register */ -#define AT91C_PMC_SCER ((AT91_REG *) 0xFFFFFC00) /* (PMC) System Clock Enable Register */ -#define AT91C_PMC_IMR ((AT91_REG *) 0xFFFFFC6C) /* (PMC) Interrupt Mask Register */ -#define AT91C_PMC_IER ((AT91_REG *) 0xFFFFFC60) /* (PMC) Interrupt Enable Register */ -#define AT91C_PMC_SR ((AT91_REG *) 0xFFFFFC68) /* (PMC) Status Register */ +#define AT91C_PMC_IDR ((AT91_REG *) 0xFFFFFC64) /* (PMC) Interrupt Disable Register */ +#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) /* (PMC) Main Oscillator Register */ +#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) /* (PMC) PLL Register */ +#define AT91C_PMC_PCER ((AT91_REG *) 0xFFFFFC10) /* (PMC) Peripheral Clock Enable Register */ +#define AT91C_PMC_PCKR ((AT91_REG *) 0xFFFFFC40) /* (PMC) Programmable Clock Register */ +#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) /* (PMC) Master Clock Register */ +#define AT91C_PMC_SCDR ((AT91_REG *) 0xFFFFFC04) /* (PMC) System Clock Disable Register */ +#define AT91C_PMC_PCDR ((AT91_REG *) 0xFFFFFC14) /* (PMC) Peripheral Clock Disable Register */ +#define AT91C_PMC_SCSR ((AT91_REG *) 0xFFFFFC08) /* (PMC) System Clock Status Register */ +#define AT91C_PMC_PCSR ((AT91_REG *) 0xFFFFFC18) /* (PMC) Peripheral Clock Status Register */ +#define AT91C_PMC_MCFR ((AT91_REG *) 0xFFFFFC24) /* (PMC) Main Clock Frequency Register */ +#define AT91C_PMC_SCER ((AT91_REG *) 0xFFFFFC00) /* (PMC) System Clock Enable Register */ +#define AT91C_PMC_IMR ((AT91_REG *) 0xFFFFFC6C) /* (PMC) Interrupt Mask Register */ +#define AT91C_PMC_IER ((AT91_REG *) 0xFFFFFC60) /* (PMC) Interrupt Enable Register */ +#define AT91C_PMC_SR ((AT91_REG *) 0xFFFFFC68) /* (PMC) Status Register */ /* ========== Register definition for RSTC peripheral ========== */ -#define AT91C_RSTC_RCR ((AT91_REG *) 0xFFFFFD00) /* (RSTC) Reset Control Register */ -#define AT91C_RSTC_RMR ((AT91_REG *) 0xFFFFFD08) /* (RSTC) Reset Mode Register */ -#define AT91C_RSTC_RSR ((AT91_REG *) 0xFFFFFD04) /* (RSTC) Reset Status Register */ +#define AT91C_RSTC_RCR ((AT91_REG *) 0xFFFFFD00) /* (RSTC) Reset Control Register */ +#define AT91C_RSTC_RMR ((AT91_REG *) 0xFFFFFD08) /* (RSTC) Reset Mode Register */ +#define AT91C_RSTC_RSR ((AT91_REG *) 0xFFFFFD04) /* (RSTC) Reset Status Register */ /* ========== Register definition for RTTC peripheral ========== */ -#define AT91C_RTTC_RTSR ((AT91_REG *) 0xFFFFFD2C) /* (RTTC) Real-time Status Register */ -#define AT91C_RTTC_RTMR ((AT91_REG *) 0xFFFFFD20) /* (RTTC) Real-time Mode Register */ -#define AT91C_RTTC_RTVR ((AT91_REG *) 0xFFFFFD28) /* (RTTC) Real-time Value Register */ -#define AT91C_RTTC_RTAR ((AT91_REG *) 0xFFFFFD24) /* (RTTC) Real-time Alarm Register */ +#define AT91C_RTTC_RTSR ((AT91_REG *) 0xFFFFFD2C) /* (RTTC) Real-time Status Register */ +#define AT91C_RTTC_RTMR ((AT91_REG *) 0xFFFFFD20) /* (RTTC) Real-time Mode Register */ +#define AT91C_RTTC_RTVR ((AT91_REG *) 0xFFFFFD28) /* (RTTC) Real-time Value Register */ +#define AT91C_RTTC_RTAR ((AT91_REG *) 0xFFFFFD24) /* (RTTC) Real-time Alarm Register */ /* ========== Register definition for PITC peripheral ========== */ -#define AT91C_PITC_PIVR ((AT91_REG *) 0xFFFFFD38) /* (PITC) Period Interval Value Register */ -#define AT91C_PITC_PISR ((AT91_REG *) 0xFFFFFD34) /* (PITC) Period Interval Status Register */ -#define AT91C_PITC_PIIR ((AT91_REG *) 0xFFFFFD3C) /* (PITC) Period Interval Image Register */ -#define AT91C_PITC_PIMR ((AT91_REG *) 0xFFFFFD30) /* (PITC) Period Interval Mode Register */ +#define AT91C_PITC_PIVR ((AT91_REG *) 0xFFFFFD38) /* (PITC) Period Interval Value Register */ +#define AT91C_PITC_PISR ((AT91_REG *) 0xFFFFFD34) /* (PITC) Period Interval Status Register */ +#define AT91C_PITC_PIIR ((AT91_REG *) 0xFFFFFD3C) /* (PITC) Period Interval Image Register */ +#define AT91C_PITC_PIMR ((AT91_REG *) 0xFFFFFD30) /* (PITC) Period Interval Mode Register */ /* ========== Register definition for WDTC peripheral ========== */ -#define AT91C_WDTC_WDCR ((AT91_REG *) 0xFFFFFD40) /* (WDTC) Watchdog Control Register */ -#define AT91C_WDTC_WDSR ((AT91_REG *) 0xFFFFFD48) /* (WDTC) Watchdog Status Register */ -#define AT91C_WDTC_WDMR ((AT91_REG *) 0xFFFFFD44) /* (WDTC) Watchdog Mode Register */ +#define AT91C_WDTC_WDCR ((AT91_REG *) 0xFFFFFD40) /* (WDTC) Watchdog Control Register */ +#define AT91C_WDTC_WDSR ((AT91_REG *) 0xFFFFFD48) /* (WDTC) Watchdog Status Register */ +#define AT91C_WDTC_WDMR ((AT91_REG *) 0xFFFFFD44) /* (WDTC) Watchdog Mode Register */ /* ========== Register definition for VREG peripheral ========== */ -#define AT91C_VREG_MR ((AT91_REG *) 0xFFFFFD60) /* (VREG) Voltage Regulator Mode Register */ +#define AT91C_VREG_MR ((AT91_REG *) 0xFFFFFD60) /* (VREG) Voltage Regulator Mode Register */ /* ========== Register definition for MC peripheral ========== */ -#define AT91C_MC_ASR ((AT91_REG *) 0xFFFFFF04) /* (MC) MC Abort Status Register */ -#define AT91C_MC_RCR ((AT91_REG *) 0xFFFFFF00) /* (MC) MC Remap Control Register */ -#define AT91C_MC_FCR ((AT91_REG *) 0xFFFFFF64) /* (MC) MC Flash Command Register */ -#define AT91C_MC_AASR ((AT91_REG *) 0xFFFFFF08) /* (MC) MC Abort Address Status Register */ -#define AT91C_MC_FSR ((AT91_REG *) 0xFFFFFF68) /* (MC) MC Flash Status Register */ -#define AT91C_MC_FMR ((AT91_REG *) 0xFFFFFF60) /* (MC) MC Flash Mode Register */ +#define AT91C_MC_ASR ((AT91_REG *) 0xFFFFFF04) /* (MC) MC Abort Status Register */ +#define AT91C_MC_RCR ((AT91_REG *) 0xFFFFFF00) /* (MC) MC Remap Control Register */ +#define AT91C_MC_FCR ((AT91_REG *) 0xFFFFFF64) /* (MC) MC Flash Command Register */ +#define AT91C_MC_AASR ((AT91_REG *) 0xFFFFFF08) /* (MC) MC Abort Address Status Register */ +#define AT91C_MC_FSR ((AT91_REG *) 0xFFFFFF68) /* (MC) MC Flash Status Register */ +#define AT91C_MC_FMR ((AT91_REG *) 0xFFFFFF60) /* (MC) MC Flash Mode Register */ /* ========== Register definition for PDC_SPI peripheral ========== */ -#define AT91C_SPI_PTCR ((AT91_REG *) 0xFFFE0120) /* (PDC_SPI) PDC Transfer Control Register */ -#define AT91C_SPI_TPR ((AT91_REG *) 0xFFFE0108) /* (PDC_SPI) Transmit Pointer Register */ -#define AT91C_SPI_TCR ((AT91_REG *) 0xFFFE010C) /* (PDC_SPI) Transmit Counter Register */ -#define AT91C_SPI_RCR ((AT91_REG *) 0xFFFE0104) /* (PDC_SPI) Receive Counter Register */ -#define AT91C_SPI_PTSR ((AT91_REG *) 0xFFFE0124) /* (PDC_SPI) PDC Transfer Status Register */ -#define AT91C_SPI_RNPR ((AT91_REG *) 0xFFFE0110) /* (PDC_SPI) Receive Next Pointer Register */ -#define AT91C_SPI_RPR ((AT91_REG *) 0xFFFE0100) /* (PDC_SPI) Receive Pointer Register */ -#define AT91C_SPI_TNCR ((AT91_REG *) 0xFFFE011C) /* (PDC_SPI) Transmit Next Counter Register */ -#define AT91C_SPI_RNCR ((AT91_REG *) 0xFFFE0114) /* (PDC_SPI) Receive Next Counter Register */ -#define AT91C_SPI_TNPR ((AT91_REG *) 0xFFFE0118) /* (PDC_SPI) Transmit Next Pointer Register */ +#define AT91C_SPI_PTCR ((AT91_REG *) 0xFFFE0120) /* (PDC_SPI) PDC Transfer Control Register */ +#define AT91C_SPI_TPR ((AT91_REG *) 0xFFFE0108) /* (PDC_SPI) Transmit Pointer Register */ +#define AT91C_SPI_TCR ((AT91_REG *) 0xFFFE010C) /* (PDC_SPI) Transmit Counter Register */ +#define AT91C_SPI_RCR ((AT91_REG *) 0xFFFE0104) /* (PDC_SPI) Receive Counter Register */ +#define AT91C_SPI_PTSR ((AT91_REG *) 0xFFFE0124) /* (PDC_SPI) PDC Transfer Status Register */ +#define AT91C_SPI_RNPR ((AT91_REG *) 0xFFFE0110) /* (PDC_SPI) Receive Next Pointer Register */ +#define AT91C_SPI_RPR ((AT91_REG *) 0xFFFE0100) /* (PDC_SPI) Receive Pointer Register */ +#define AT91C_SPI_TNCR ((AT91_REG *) 0xFFFE011C) /* (PDC_SPI) Transmit Next Counter Register */ +#define AT91C_SPI_RNCR ((AT91_REG *) 0xFFFE0114) /* (PDC_SPI) Receive Next Counter Register */ +#define AT91C_SPI_TNPR ((AT91_REG *) 0xFFFE0118) /* (PDC_SPI) Transmit Next Pointer Register */ /* ========== Register definition for SPI peripheral ========== */ -#define AT91C_SPI_IER ((AT91_REG *) 0xFFFE0014) /* (SPI) Interrupt Enable Register */ -#define AT91C_SPI_SR ((AT91_REG *) 0xFFFE0010) /* (SPI) Status Register */ -#define AT91C_SPI_IDR ((AT91_REG *) 0xFFFE0018) /* (SPI) Interrupt Disable Register */ -#define AT91C_SPI_CR ((AT91_REG *) 0xFFFE0000) /* (SPI) Control Register */ -#define AT91C_SPI_MR ((AT91_REG *) 0xFFFE0004) /* (SPI) Mode Register */ -#define AT91C_SPI_IMR ((AT91_REG *) 0xFFFE001C) /* (SPI) Interrupt Mask Register */ -#define AT91C_SPI_TDR ((AT91_REG *) 0xFFFE000C) /* (SPI) Transmit Data Register */ -#define AT91C_SPI_RDR ((AT91_REG *) 0xFFFE0008) /* (SPI) Receive Data Register */ -#define AT91C_SPI_CSR ((AT91_REG *) 0xFFFE0030) /* (SPI) Chip Select Register */ +#define AT91C_SPI_IER ((AT91_REG *) 0xFFFE0014) /* (SPI) Interrupt Enable Register */ +#define AT91C_SPI_SR ((AT91_REG *) 0xFFFE0010) /* (SPI) Status Register */ +#define AT91C_SPI_IDR ((AT91_REG *) 0xFFFE0018) /* (SPI) Interrupt Disable Register */ +#define AT91C_SPI_CR ((AT91_REG *) 0xFFFE0000) /* (SPI) Control Register */ +#define AT91C_SPI_MR ((AT91_REG *) 0xFFFE0004) /* (SPI) Mode Register */ +#define AT91C_SPI_IMR ((AT91_REG *) 0xFFFE001C) /* (SPI) Interrupt Mask Register */ +#define AT91C_SPI_TDR ((AT91_REG *) 0xFFFE000C) /* (SPI) Transmit Data Register */ +#define AT91C_SPI_RDR ((AT91_REG *) 0xFFFE0008) /* (SPI) Receive Data Register */ +#define AT91C_SPI_CSR ((AT91_REG *) 0xFFFE0030) /* (SPI) Chip Select Register */ /* ========== Register definition for PDC_ADC peripheral ========== */ -#define AT91C_ADC_PTSR ((AT91_REG *) 0xFFFD8124) /* (PDC_ADC) PDC Transfer Status Register */ -#define AT91C_ADC_PTCR ((AT91_REG *) 0xFFFD8120) /* (PDC_ADC) PDC Transfer Control Register */ -#define AT91C_ADC_TNPR ((AT91_REG *) 0xFFFD8118) /* (PDC_ADC) Transmit Next Pointer Register */ -#define AT91C_ADC_TNCR ((AT91_REG *) 0xFFFD811C) /* (PDC_ADC) Transmit Next Counter Register */ -#define AT91C_ADC_RNPR ((AT91_REG *) 0xFFFD8110) /* (PDC_ADC) Receive Next Pointer Register */ -#define AT91C_ADC_RNCR ((AT91_REG *) 0xFFFD8114) /* (PDC_ADC) Receive Next Counter Register */ -#define AT91C_ADC_RPR ((AT91_REG *) 0xFFFD8100) /* (PDC_ADC) Receive Pointer Register */ -#define AT91C_ADC_TCR ((AT91_REG *) 0xFFFD810C) /* (PDC_ADC) Transmit Counter Register */ -#define AT91C_ADC_TPR ((AT91_REG *) 0xFFFD8108) /* (PDC_ADC) Transmit Pointer Register */ -#define AT91C_ADC_RCR ((AT91_REG *) 0xFFFD8104) /* (PDC_ADC) Receive Counter Register */ +#define AT91C_ADC_PTSR ((AT91_REG *) 0xFFFD8124) /* (PDC_ADC) PDC Transfer Status Register */ +#define AT91C_ADC_PTCR ((AT91_REG *) 0xFFFD8120) /* (PDC_ADC) PDC Transfer Control Register */ +#define AT91C_ADC_TNPR ((AT91_REG *) 0xFFFD8118) /* (PDC_ADC) Transmit Next Pointer Register */ +#define AT91C_ADC_TNCR ((AT91_REG *) 0xFFFD811C) /* (PDC_ADC) Transmit Next Counter Register */ +#define AT91C_ADC_RNPR ((AT91_REG *) 0xFFFD8110) /* (PDC_ADC) Receive Next Pointer Register */ +#define AT91C_ADC_RNCR ((AT91_REG *) 0xFFFD8114) /* (PDC_ADC) Receive Next Counter Register */ +#define AT91C_ADC_RPR ((AT91_REG *) 0xFFFD8100) /* (PDC_ADC) Receive Pointer Register */ +#define AT91C_ADC_TCR ((AT91_REG *) 0xFFFD810C) /* (PDC_ADC) Transmit Counter Register */ +#define AT91C_ADC_TPR ((AT91_REG *) 0xFFFD8108) /* (PDC_ADC) Transmit Pointer Register */ +#define AT91C_ADC_RCR ((AT91_REG *) 0xFFFD8104) /* (PDC_ADC) Receive Counter Register */ /* ========== Register definition for ADC peripheral ========== */ -#define AT91C_ADC_CDR2 ((AT91_REG *) 0xFFFD8038) /* (ADC) ADC Channel Data Register 2 */ -#define AT91C_ADC_CDR3 ((AT91_REG *) 0xFFFD803C) /* (ADC) ADC Channel Data Register 3 */ -#define AT91C_ADC_CDR0 ((AT91_REG *) 0xFFFD8030) /* (ADC) ADC Channel Data Register 0 */ -#define AT91C_ADC_CDR5 ((AT91_REG *) 0xFFFD8044) /* (ADC) ADC Channel Data Register 5 */ -#define AT91C_ADC_CHDR ((AT91_REG *) 0xFFFD8014) /* (ADC) ADC Channel Disable Register */ -#define AT91C_ADC_SR ((AT91_REG *) 0xFFFD801C) /* (ADC) ADC Status Register */ -#define AT91C_ADC_CDR4 ((AT91_REG *) 0xFFFD8040) /* (ADC) ADC Channel Data Register 4 */ -#define AT91C_ADC_CDR1 ((AT91_REG *) 0xFFFD8034) /* (ADC) ADC Channel Data Register 1 */ -#define AT91C_ADC_LCDR ((AT91_REG *) 0xFFFD8020) /* (ADC) ADC Last Converted Data Register */ -#define AT91C_ADC_IDR ((AT91_REG *) 0xFFFD8028) /* (ADC) ADC Interrupt Disable Register */ -#define AT91C_ADC_CR ((AT91_REG *) 0xFFFD8000) /* (ADC) ADC Control Register */ -#define AT91C_ADC_CDR7 ((AT91_REG *) 0xFFFD804C) /* (ADC) ADC Channel Data Register 7 */ -#define AT91C_ADC_CDR6 ((AT91_REG *) 0xFFFD8048) /* (ADC) ADC Channel Data Register 6 */ -#define AT91C_ADC_IER ((AT91_REG *) 0xFFFD8024) /* (ADC) ADC Interrupt Enable Register */ -#define AT91C_ADC_CHER ((AT91_REG *) 0xFFFD8010) /* (ADC) ADC Channel Enable Register */ -#define AT91C_ADC_CHSR ((AT91_REG *) 0xFFFD8018) /* (ADC) ADC Channel Status Register */ -#define AT91C_ADC_MR ((AT91_REG *) 0xFFFD8004) /* (ADC) ADC Mode Register */ -#define AT91C_ADC_IMR ((AT91_REG *) 0xFFFD802C) /* (ADC) ADC Interrupt Mask Register */ +#define AT91C_ADC_CDR2 ((AT91_REG *) 0xFFFD8038) /* (ADC) ADC Channel Data Register 2 */ +#define AT91C_ADC_CDR3 ((AT91_REG *) 0xFFFD803C) /* (ADC) ADC Channel Data Register 3 */ +#define AT91C_ADC_CDR0 ((AT91_REG *) 0xFFFD8030) /* (ADC) ADC Channel Data Register 0 */ +#define AT91C_ADC_CDR5 ((AT91_REG *) 0xFFFD8044) /* (ADC) ADC Channel Data Register 5 */ +#define AT91C_ADC_CHDR ((AT91_REG *) 0xFFFD8014) /* (ADC) ADC Channel Disable Register */ +#define AT91C_ADC_SR ((AT91_REG *) 0xFFFD801C) /* (ADC) ADC Status Register */ +#define AT91C_ADC_CDR4 ((AT91_REG *) 0xFFFD8040) /* (ADC) ADC Channel Data Register 4 */ +#define AT91C_ADC_CDR1 ((AT91_REG *) 0xFFFD8034) /* (ADC) ADC Channel Data Register 1 */ +#define AT91C_ADC_LCDR ((AT91_REG *) 0xFFFD8020) /* (ADC) ADC Last Converted Data Register */ +#define AT91C_ADC_IDR ((AT91_REG *) 0xFFFD8028) /* (ADC) ADC Interrupt Disable Register */ +#define AT91C_ADC_CR ((AT91_REG *) 0xFFFD8000) /* (ADC) ADC Control Register */ +#define AT91C_ADC_CDR7 ((AT91_REG *) 0xFFFD804C) /* (ADC) ADC Channel Data Register 7 */ +#define AT91C_ADC_CDR6 ((AT91_REG *) 0xFFFD8048) /* (ADC) ADC Channel Data Register 6 */ +#define AT91C_ADC_IER ((AT91_REG *) 0xFFFD8024) /* (ADC) ADC Interrupt Enable Register */ +#define AT91C_ADC_CHER ((AT91_REG *) 0xFFFD8010) /* (ADC) ADC Channel Enable Register */ +#define AT91C_ADC_CHSR ((AT91_REG *) 0xFFFD8018) /* (ADC) ADC Channel Status Register */ +#define AT91C_ADC_MR ((AT91_REG *) 0xFFFD8004) /* (ADC) ADC Mode Register */ +#define AT91C_ADC_IMR ((AT91_REG *) 0xFFFD802C) /* (ADC) ADC Interrupt Mask Register */ /* ========== Register definition for PDC_SSC peripheral ========== */ -#define AT91C_SSC_TNCR ((AT91_REG *) 0xFFFD411C) /* (PDC_SSC) Transmit Next Counter Register */ -#define AT91C_SSC_RPR ((AT91_REG *) 0xFFFD4100) /* (PDC_SSC) Receive Pointer Register */ -#define AT91C_SSC_RNCR ((AT91_REG *) 0xFFFD4114) /* (PDC_SSC) Receive Next Counter Register */ -#define AT91C_SSC_TPR ((AT91_REG *) 0xFFFD4108) /* (PDC_SSC) Transmit Pointer Register */ -#define AT91C_SSC_PTCR ((AT91_REG *) 0xFFFD4120) /* (PDC_SSC) PDC Transfer Control Register */ -#define AT91C_SSC_TCR ((AT91_REG *) 0xFFFD410C) /* (PDC_SSC) Transmit Counter Register */ -#define AT91C_SSC_RCR ((AT91_REG *) 0xFFFD4104) /* (PDC_SSC) Receive Counter Register */ -#define AT91C_SSC_RNPR ((AT91_REG *) 0xFFFD4110) /* (PDC_SSC) Receive Next Pointer Register */ -#define AT91C_SSC_TNPR ((AT91_REG *) 0xFFFD4118) /* (PDC_SSC) Transmit Next Pointer Register */ -#define AT91C_SSC_PTSR ((AT91_REG *) 0xFFFD4124) /* (PDC_SSC) PDC Transfer Status Register */ +#define AT91C_SSC_TNCR ((AT91_REG *) 0xFFFD411C) /* (PDC_SSC) Transmit Next Counter Register */ +#define AT91C_SSC_RPR ((AT91_REG *) 0xFFFD4100) /* (PDC_SSC) Receive Pointer Register */ +#define AT91C_SSC_RNCR ((AT91_REG *) 0xFFFD4114) /* (PDC_SSC) Receive Next Counter Register */ +#define AT91C_SSC_TPR ((AT91_REG *) 0xFFFD4108) /* (PDC_SSC) Transmit Pointer Register */ +#define AT91C_SSC_PTCR ((AT91_REG *) 0xFFFD4120) /* (PDC_SSC) PDC Transfer Control Register */ +#define AT91C_SSC_TCR ((AT91_REG *) 0xFFFD410C) /* (PDC_SSC) Transmit Counter Register */ +#define AT91C_SSC_RCR ((AT91_REG *) 0xFFFD4104) /* (PDC_SSC) Receive Counter Register */ +#define AT91C_SSC_RNPR ((AT91_REG *) 0xFFFD4110) /* (PDC_SSC) Receive Next Pointer Register */ +#define AT91C_SSC_TNPR ((AT91_REG *) 0xFFFD4118) /* (PDC_SSC) Transmit Next Pointer Register */ +#define AT91C_SSC_PTSR ((AT91_REG *) 0xFFFD4124) /* (PDC_SSC) PDC Transfer Status Register */ /* ========== Register definition for SSC peripheral ========== */ -#define AT91C_SSC_RHR ((AT91_REG *) 0xFFFD4020) /* (SSC) Receive Holding Register */ -#define AT91C_SSC_RSHR ((AT91_REG *) 0xFFFD4030) /* (SSC) Receive Sync Holding Register */ -#define AT91C_SSC_TFMR ((AT91_REG *) 0xFFFD401C) /* (SSC) Transmit Frame Mode Register */ -#define AT91C_SSC_IDR ((AT91_REG *) 0xFFFD4048) /* (SSC) Interrupt Disable Register */ -#define AT91C_SSC_THR ((AT91_REG *) 0xFFFD4024) /* (SSC) Transmit Holding Register */ -#define AT91C_SSC_RCMR ((AT91_REG *) 0xFFFD4010) /* (SSC) Receive Clock ModeRegister */ -#define AT91C_SSC_IER ((AT91_REG *) 0xFFFD4044) /* (SSC) Interrupt Enable Register */ -#define AT91C_SSC_TSHR ((AT91_REG *) 0xFFFD4034) /* (SSC) Transmit Sync Holding Register */ -#define AT91C_SSC_SR ((AT91_REG *) 0xFFFD4040) /* (SSC) Status Register */ -#define AT91C_SSC_CMR ((AT91_REG *) 0xFFFD4004) /* (SSC) Clock Mode Register */ -#define AT91C_SSC_TCMR ((AT91_REG *) 0xFFFD4018) /* (SSC) Transmit Clock Mode Register */ -#define AT91C_SSC_CR ((AT91_REG *) 0xFFFD4000) /* (SSC) Control Register */ -#define AT91C_SSC_IMR ((AT91_REG *) 0xFFFD404C) /* (SSC) Interrupt Mask Register */ -#define AT91C_SSC_RFMR ((AT91_REG *) 0xFFFD4014) /* (SSC) Receive Frame Mode Register */ +#define AT91C_SSC_RHR ((AT91_REG *) 0xFFFD4020) /* (SSC) Receive Holding Register */ +#define AT91C_SSC_RSHR ((AT91_REG *) 0xFFFD4030) /* (SSC) Receive Sync Holding Register */ +#define AT91C_SSC_TFMR ((AT91_REG *) 0xFFFD401C) /* (SSC) Transmit Frame Mode Register */ +#define AT91C_SSC_IDR ((AT91_REG *) 0xFFFD4048) /* (SSC) Interrupt Disable Register */ +#define AT91C_SSC_THR ((AT91_REG *) 0xFFFD4024) /* (SSC) Transmit Holding Register */ +#define AT91C_SSC_RCMR ((AT91_REG *) 0xFFFD4010) /* (SSC) Receive Clock ModeRegister */ +#define AT91C_SSC_IER ((AT91_REG *) 0xFFFD4044) /* (SSC) Interrupt Enable Register */ +#define AT91C_SSC_TSHR ((AT91_REG *) 0xFFFD4034) /* (SSC) Transmit Sync Holding Register */ +#define AT91C_SSC_SR ((AT91_REG *) 0xFFFD4040) /* (SSC) Status Register */ +#define AT91C_SSC_CMR ((AT91_REG *) 0xFFFD4004) /* (SSC) Clock Mode Register */ +#define AT91C_SSC_TCMR ((AT91_REG *) 0xFFFD4018) /* (SSC) Transmit Clock Mode Register */ +#define AT91C_SSC_CR ((AT91_REG *) 0xFFFD4000) /* (SSC) Control Register */ +#define AT91C_SSC_IMR ((AT91_REG *) 0xFFFD404C) /* (SSC) Interrupt Mask Register */ +#define AT91C_SSC_RFMR ((AT91_REG *) 0xFFFD4014) /* (SSC) Receive Frame Mode Register */ /* ========== Register definition for PDC_US1 peripheral ========== */ -#define AT91C_US1_RNCR ((AT91_REG *) 0xFFFC4114) /* (PDC_US1) Receive Next Counter Register */ -#define AT91C_US1_PTCR ((AT91_REG *) 0xFFFC4120) /* (PDC_US1) PDC Transfer Control Register */ -#define AT91C_US1_TCR ((AT91_REG *) 0xFFFC410C) /* (PDC_US1) Transmit Counter Register */ -#define AT91C_US1_PTSR ((AT91_REG *) 0xFFFC4124) /* (PDC_US1) PDC Transfer Status Register */ -#define AT91C_US1_TNPR ((AT91_REG *) 0xFFFC4118) /* (PDC_US1) Transmit Next Pointer Register */ -#define AT91C_US1_RCR ((AT91_REG *) 0xFFFC4104) /* (PDC_US1) Receive Counter Register */ -#define AT91C_US1_RNPR ((AT91_REG *) 0xFFFC4110) /* (PDC_US1) Receive Next Pointer Register */ -#define AT91C_US1_RPR ((AT91_REG *) 0xFFFC4100) /* (PDC_US1) Receive Pointer Register */ -#define AT91C_US1_TNCR ((AT91_REG *) 0xFFFC411C) /* (PDC_US1) Transmit Next Counter Register */ -#define AT91C_US1_TPR ((AT91_REG *) 0xFFFC4108) /* (PDC_US1) Transmit Pointer Register */ +#define AT91C_US1_RNCR ((AT91_REG *) 0xFFFC4114) /* (PDC_US1) Receive Next Counter Register */ +#define AT91C_US1_PTCR ((AT91_REG *) 0xFFFC4120) /* (PDC_US1) PDC Transfer Control Register */ +#define AT91C_US1_TCR ((AT91_REG *) 0xFFFC410C) /* (PDC_US1) Transmit Counter Register */ +#define AT91C_US1_PTSR ((AT91_REG *) 0xFFFC4124) /* (PDC_US1) PDC Transfer Status Register */ +#define AT91C_US1_TNPR ((AT91_REG *) 0xFFFC4118) /* (PDC_US1) Transmit Next Pointer Register */ +#define AT91C_US1_RCR ((AT91_REG *) 0xFFFC4104) /* (PDC_US1) Receive Counter Register */ +#define AT91C_US1_RNPR ((AT91_REG *) 0xFFFC4110) /* (PDC_US1) Receive Next Pointer Register */ +#define AT91C_US1_RPR ((AT91_REG *) 0xFFFC4100) /* (PDC_US1) Receive Pointer Register */ +#define AT91C_US1_TNCR ((AT91_REG *) 0xFFFC411C) /* (PDC_US1) Transmit Next Counter Register */ +#define AT91C_US1_TPR ((AT91_REG *) 0xFFFC4108) /* (PDC_US1) Transmit Pointer Register */ /* ========== Register definition for US1 peripheral ========== */ -#define AT91C_US1_IF ((AT91_REG *) 0xFFFC404C) /* (US1) IRDA_FILTER Register */ -#define AT91C_US1_NER ((AT91_REG *) 0xFFFC4044) /* (US1) Nb Errors Register */ -#define AT91C_US1_RTOR ((AT91_REG *) 0xFFFC4024) /* (US1) Receiver Time-out Register */ -#define AT91C_US1_CSR ((AT91_REG *) 0xFFFC4014) /* (US1) Channel Status Register */ -#define AT91C_US1_IDR ((AT91_REG *) 0xFFFC400C) /* (US1) Interrupt Disable Register */ -#define AT91C_US1_IER ((AT91_REG *) 0xFFFC4008) /* (US1) Interrupt Enable Register */ -#define AT91C_US1_THR ((AT91_REG *) 0xFFFC401C) /* (US1) Transmitter Holding Register */ -#define AT91C_US1_TTGR ((AT91_REG *) 0xFFFC4028) /* (US1) Transmitter Time-guard Register */ -#define AT91C_US1_RHR ((AT91_REG *) 0xFFFC4018) /* (US1) Receiver Holding Register */ -#define AT91C_US1_BRGR ((AT91_REG *) 0xFFFC4020) /* (US1) Baud Rate Generator Register */ -#define AT91C_US1_IMR ((AT91_REG *) 0xFFFC4010) /* (US1) Interrupt Mask Register */ -#define AT91C_US1_FIDI ((AT91_REG *) 0xFFFC4040) /* (US1) FI_DI_Ratio Register */ -#define AT91C_US1_CR ((AT91_REG *) 0xFFFC4000) /* (US1) Control Register */ -#define AT91C_US1_MR ((AT91_REG *) 0xFFFC4004) /* (US1) Mode Register */ +#define AT91C_US1_IF ((AT91_REG *) 0xFFFC404C) /* (US1) IRDA_FILTER Register */ +#define AT91C_US1_NER ((AT91_REG *) 0xFFFC4044) /* (US1) Nb Errors Register */ +#define AT91C_US1_RTOR ((AT91_REG *) 0xFFFC4024) /* (US1) Receiver Time-out Register */ +#define AT91C_US1_CSR ((AT91_REG *) 0xFFFC4014) /* (US1) Channel Status Register */ +#define AT91C_US1_IDR ((AT91_REG *) 0xFFFC400C) /* (US1) Interrupt Disable Register */ +#define AT91C_US1_IER ((AT91_REG *) 0xFFFC4008) /* (US1) Interrupt Enable Register */ +#define AT91C_US1_THR ((AT91_REG *) 0xFFFC401C) /* (US1) Transmitter Holding Register */ +#define AT91C_US1_TTGR ((AT91_REG *) 0xFFFC4028) /* (US1) Transmitter Time-guard Register */ +#define AT91C_US1_RHR ((AT91_REG *) 0xFFFC4018) /* (US1) Receiver Holding Register */ +#define AT91C_US1_BRGR ((AT91_REG *) 0xFFFC4020) /* (US1) Baud Rate Generator Register */ +#define AT91C_US1_IMR ((AT91_REG *) 0xFFFC4010) /* (US1) Interrupt Mask Register */ +#define AT91C_US1_FIDI ((AT91_REG *) 0xFFFC4040) /* (US1) FI_DI_Ratio Register */ +#define AT91C_US1_CR ((AT91_REG *) 0xFFFC4000) /* (US1) Control Register */ +#define AT91C_US1_MR ((AT91_REG *) 0xFFFC4004) /* (US1) Mode Register */ /* ========== Register definition for PDC_US0 peripheral ========== */ -#define AT91C_US0_TNPR ((AT91_REG *) 0xFFFC0118) /* (PDC_US0) Transmit Next Pointer Register */ -#define AT91C_US0_RNPR ((AT91_REG *) 0xFFFC0110) /* (PDC_US0) Receive Next Pointer Register */ -#define AT91C_US0_TCR ((AT91_REG *) 0xFFFC010C) /* (PDC_US0) Transmit Counter Register */ -#define AT91C_US0_PTCR ((AT91_REG *) 0xFFFC0120) /* (PDC_US0) PDC Transfer Control Register */ -#define AT91C_US0_PTSR ((AT91_REG *) 0xFFFC0124) /* (PDC_US0) PDC Transfer Status Register */ -#define AT91C_US0_TNCR ((AT91_REG *) 0xFFFC011C) /* (PDC_US0) Transmit Next Counter Register */ -#define AT91C_US0_TPR ((AT91_REG *) 0xFFFC0108) /* (PDC_US0) Transmit Pointer Register */ -#define AT91C_US0_RCR ((AT91_REG *) 0xFFFC0104) /* (PDC_US0) Receive Counter Register */ -#define AT91C_US0_RPR ((AT91_REG *) 0xFFFC0100) /* (PDC_US0) Receive Pointer Register */ -#define AT91C_US0_RNCR ((AT91_REG *) 0xFFFC0114) /* (PDC_US0) Receive Next Counter Register */ +#define AT91C_US0_TNPR ((AT91_REG *) 0xFFFC0118) /* (PDC_US0) Transmit Next Pointer Register */ +#define AT91C_US0_RNPR ((AT91_REG *) 0xFFFC0110) /* (PDC_US0) Receive Next Pointer Register */ +#define AT91C_US0_TCR ((AT91_REG *) 0xFFFC010C) /* (PDC_US0) Transmit Counter Register */ +#define AT91C_US0_PTCR ((AT91_REG *) 0xFFFC0120) /* (PDC_US0) PDC Transfer Control Register */ +#define AT91C_US0_PTSR ((AT91_REG *) 0xFFFC0124) /* (PDC_US0) PDC Transfer Status Register */ +#define AT91C_US0_TNCR ((AT91_REG *) 0xFFFC011C) /* (PDC_US0) Transmit Next Counter Register */ +#define AT91C_US0_TPR ((AT91_REG *) 0xFFFC0108) /* (PDC_US0) Transmit Pointer Register */ +#define AT91C_US0_RCR ((AT91_REG *) 0xFFFC0104) /* (PDC_US0) Receive Counter Register */ +#define AT91C_US0_RPR ((AT91_REG *) 0xFFFC0100) /* (PDC_US0) Receive Pointer Register */ +#define AT91C_US0_RNCR ((AT91_REG *) 0xFFFC0114) /* (PDC_US0) Receive Next Counter Register */ /* ========== Register definition for US0 peripheral ========== */ -#define AT91C_US0_BRGR ((AT91_REG *) 0xFFFC0020) /* (US0) Baud Rate Generator Register */ -#define AT91C_US0_NER ((AT91_REG *) 0xFFFC0044) /* (US0) Nb Errors Register */ -#define AT91C_US0_CR ((AT91_REG *) 0xFFFC0000) /* (US0) Control Register */ -#define AT91C_US0_IMR ((AT91_REG *) 0xFFFC0010) /* (US0) Interrupt Mask Register */ -#define AT91C_US0_FIDI ((AT91_REG *) 0xFFFC0040) /* (US0) FI_DI_Ratio Register */ -#define AT91C_US0_TTGR ((AT91_REG *) 0xFFFC0028) /* (US0) Transmitter Time-guard Register */ -#define AT91C_US0_MR ((AT91_REG *) 0xFFFC0004) /* (US0) Mode Register */ -#define AT91C_US0_RTOR ((AT91_REG *) 0xFFFC0024) /* (US0) Receiver Time-out Register */ -#define AT91C_US0_CSR ((AT91_REG *) 0xFFFC0014) /* (US0) Channel Status Register */ -#define AT91C_US0_RHR ((AT91_REG *) 0xFFFC0018) /* (US0) Receiver Holding Register */ -#define AT91C_US0_IDR ((AT91_REG *) 0xFFFC000C) /* (US0) Interrupt Disable Register */ -#define AT91C_US0_THR ((AT91_REG *) 0xFFFC001C) /* (US0) Transmitter Holding Register */ -#define AT91C_US0_IF ((AT91_REG *) 0xFFFC004C) /* (US0) IRDA_FILTER Register */ -#define AT91C_US0_IER ((AT91_REG *) 0xFFFC0008) /* (US0) Interrupt Enable Register */ +#define AT91C_US0_BRGR ((AT91_REG *) 0xFFFC0020) /* (US0) Baud Rate Generator Register */ +#define AT91C_US0_NER ((AT91_REG *) 0xFFFC0044) /* (US0) Nb Errors Register */ +#define AT91C_US0_CR ((AT91_REG *) 0xFFFC0000) /* (US0) Control Register */ +#define AT91C_US0_IMR ((AT91_REG *) 0xFFFC0010) /* (US0) Interrupt Mask Register */ +#define AT91C_US0_FIDI ((AT91_REG *) 0xFFFC0040) /* (US0) FI_DI_Ratio Register */ +#define AT91C_US0_TTGR ((AT91_REG *) 0xFFFC0028) /* (US0) Transmitter Time-guard Register */ +#define AT91C_US0_MR ((AT91_REG *) 0xFFFC0004) /* (US0) Mode Register */ +#define AT91C_US0_RTOR ((AT91_REG *) 0xFFFC0024) /* (US0) Receiver Time-out Register */ +#define AT91C_US0_CSR ((AT91_REG *) 0xFFFC0014) /* (US0) Channel Status Register */ +#define AT91C_US0_RHR ((AT91_REG *) 0xFFFC0018) /* (US0) Receiver Holding Register */ +#define AT91C_US0_IDR ((AT91_REG *) 0xFFFC000C) /* (US0) Interrupt Disable Register */ +#define AT91C_US0_THR ((AT91_REG *) 0xFFFC001C) /* (US0) Transmitter Holding Register */ +#define AT91C_US0_IF ((AT91_REG *) 0xFFFC004C) /* (US0) IRDA_FILTER Register */ +#define AT91C_US0_IER ((AT91_REG *) 0xFFFC0008) /* (US0) Interrupt Enable Register */ /* ========== Register definition for TWI peripheral ========== */ -#define AT91C_TWI_IER ((AT91_REG *) 0xFFFB8024) /* (TWI) Interrupt Enable Register */ -#define AT91C_TWI_CR ((AT91_REG *) 0xFFFB8000) /* (TWI) Control Register */ -#define AT91C_TWI_SR ((AT91_REG *) 0xFFFB8020) /* (TWI) Status Register */ -#define AT91C_TWI_IMR ((AT91_REG *) 0xFFFB802C) /* (TWI) Interrupt Mask Register */ -#define AT91C_TWI_THR ((AT91_REG *) 0xFFFB8034) /* (TWI) Transmit Holding Register */ -#define AT91C_TWI_IDR ((AT91_REG *) 0xFFFB8028) /* (TWI) Interrupt Disable Register */ -#define AT91C_TWI_IADR ((AT91_REG *) 0xFFFB800C) /* (TWI) Internal Address Register */ -#define AT91C_TWI_MMR ((AT91_REG *) 0xFFFB8004) /* (TWI) Master Mode Register */ -#define AT91C_TWI_CWGR ((AT91_REG *) 0xFFFB8010) /* (TWI) Clock Waveform Generator Register */ -#define AT91C_TWI_RHR ((AT91_REG *) 0xFFFB8030) /* (TWI) Receive Holding Register */ +#define AT91C_TWI_IER ((AT91_REG *) 0xFFFB8024) /* (TWI) Interrupt Enable Register */ +#define AT91C_TWI_CR ((AT91_REG *) 0xFFFB8000) /* (TWI) Control Register */ +#define AT91C_TWI_SR ((AT91_REG *) 0xFFFB8020) /* (TWI) Status Register */ +#define AT91C_TWI_IMR ((AT91_REG *) 0xFFFB802C) /* (TWI) Interrupt Mask Register */ +#define AT91C_TWI_THR ((AT91_REG *) 0xFFFB8034) /* (TWI) Transmit Holding Register */ +#define AT91C_TWI_IDR ((AT91_REG *) 0xFFFB8028) /* (TWI) Interrupt Disable Register */ +#define AT91C_TWI_IADR ((AT91_REG *) 0xFFFB800C) /* (TWI) Internal Address Register */ +#define AT91C_TWI_MMR ((AT91_REG *) 0xFFFB8004) /* (TWI) Master Mode Register */ +#define AT91C_TWI_CWGR ((AT91_REG *) 0xFFFB8010) /* (TWI) Clock Waveform Generator Register */ +#define AT91C_TWI_RHR ((AT91_REG *) 0xFFFB8030) /* (TWI) Receive Holding Register */ /* ========== Register definition for TC0 peripheral ========== */ -#define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) /* (TC0) Status Register */ -#define AT91C_TC0_RC ((AT91_REG *) 0xFFFA001C) /* (TC0) Register C */ -#define AT91C_TC0_RB ((AT91_REG *) 0xFFFA0018) /* (TC0) Register B */ -#define AT91C_TC0_CCR ((AT91_REG *) 0xFFFA0000) /* (TC0) Channel Control Register */ -#define AT91C_TC0_CMR ((AT91_REG *) 0xFFFA0004) /* (TC0) Channel Mode Register (Capture Mode / Waveform Mode) */ -#define AT91C_TC0_IER ((AT91_REG *) 0xFFFA0024) /* (TC0) Interrupt Enable Register */ -#define AT91C_TC0_RA ((AT91_REG *) 0xFFFA0014) /* (TC0) Register A */ -#define AT91C_TC0_IDR ((AT91_REG *) 0xFFFA0028) /* (TC0) Interrupt Disable Register */ -#define AT91C_TC0_CV ((AT91_REG *) 0xFFFA0010) /* (TC0) Counter Value */ -#define AT91C_TC0_IMR ((AT91_REG *) 0xFFFA002C) /* (TC0) Interrupt Mask Register */ +#define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) /* (TC0) Status Register */ +#define AT91C_TC0_RC ((AT91_REG *) 0xFFFA001C) /* (TC0) Register C */ +#define AT91C_TC0_RB ((AT91_REG *) 0xFFFA0018) /* (TC0) Register B */ +#define AT91C_TC0_CCR ((AT91_REG *) 0xFFFA0000) /* (TC0) Channel Control Register */ +#define AT91C_TC0_CMR ((AT91_REG *) 0xFFFA0004) /* (TC0) Channel Mode Register (Capture Mode / Waveform Mode) */ +#define AT91C_TC0_IER ((AT91_REG *) 0xFFFA0024) /* (TC0) Interrupt Enable Register */ +#define AT91C_TC0_RA ((AT91_REG *) 0xFFFA0014) /* (TC0) Register A */ +#define AT91C_TC0_IDR ((AT91_REG *) 0xFFFA0028) /* (TC0) Interrupt Disable Register */ +#define AT91C_TC0_CV ((AT91_REG *) 0xFFFA0010) /* (TC0) Counter Value */ +#define AT91C_TC0_IMR ((AT91_REG *) 0xFFFA002C) /* (TC0) Interrupt Mask Register */ /* ========== Register definition for TC1 peripheral ========== */ -#define AT91C_TC1_RB ((AT91_REG *) 0xFFFA0058) /* (TC1) Register B */ -#define AT91C_TC1_CCR ((AT91_REG *) 0xFFFA0040) /* (TC1) Channel Control Register */ -#define AT91C_TC1_IER ((AT91_REG *) 0xFFFA0064) /* (TC1) Interrupt Enable Register */ -#define AT91C_TC1_IDR ((AT91_REG *) 0xFFFA0068) /* (TC1) Interrupt Disable Register */ -#define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) /* (TC1) Status Register */ -#define AT91C_TC1_CMR ((AT91_REG *) 0xFFFA0044) /* (TC1) Channel Mode Register (Capture Mode / Waveform Mode) */ -#define AT91C_TC1_RA ((AT91_REG *) 0xFFFA0054) /* (TC1) Register A */ -#define AT91C_TC1_RC ((AT91_REG *) 0xFFFA005C) /* (TC1) Register C */ -#define AT91C_TC1_IMR ((AT91_REG *) 0xFFFA006C) /* (TC1) Interrupt Mask Register */ -#define AT91C_TC1_CV ((AT91_REG *) 0xFFFA0050) /* (TC1) Counter Value */ +#define AT91C_TC1_RB ((AT91_REG *) 0xFFFA0058) /* (TC1) Register B */ +#define AT91C_TC1_CCR ((AT91_REG *) 0xFFFA0040) /* (TC1) Channel Control Register */ +#define AT91C_TC1_IER ((AT91_REG *) 0xFFFA0064) /* (TC1) Interrupt Enable Register */ +#define AT91C_TC1_IDR ((AT91_REG *) 0xFFFA0068) /* (TC1) Interrupt Disable Register */ +#define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) /* (TC1) Status Register */ +#define AT91C_TC1_CMR ((AT91_REG *) 0xFFFA0044) /* (TC1) Channel Mode Register (Capture Mode / Waveform Mode) */ +#define AT91C_TC1_RA ((AT91_REG *) 0xFFFA0054) /* (TC1) Register A */ +#define AT91C_TC1_RC ((AT91_REG *) 0xFFFA005C) /* (TC1) Register C */ +#define AT91C_TC1_IMR ((AT91_REG *) 0xFFFA006C) /* (TC1) Interrupt Mask Register */ +#define AT91C_TC1_CV ((AT91_REG *) 0xFFFA0050) /* (TC1) Counter Value */ /* ========== Register definition for TC2 peripheral ========== */ -#define AT91C_TC2_CMR ((AT91_REG *) 0xFFFA0084) /* (TC2) Channel Mode Register (Capture Mode / Waveform Mode) */ -#define AT91C_TC2_CCR ((AT91_REG *) 0xFFFA0080) /* (TC2) Channel Control Register */ -#define AT91C_TC2_CV ((AT91_REG *) 0xFFFA0090) /* (TC2) Counter Value */ -#define AT91C_TC2_RA ((AT91_REG *) 0xFFFA0094) /* (TC2) Register A */ -#define AT91C_TC2_RB ((AT91_REG *) 0xFFFA0098) /* (TC2) Register B */ -#define AT91C_TC2_IDR ((AT91_REG *) 0xFFFA00A8) /* (TC2) Interrupt Disable Register */ -#define AT91C_TC2_IMR ((AT91_REG *) 0xFFFA00AC) /* (TC2) Interrupt Mask Register */ -#define AT91C_TC2_RC ((AT91_REG *) 0xFFFA009C) /* (TC2) Register C */ -#define AT91C_TC2_IER ((AT91_REG *) 0xFFFA00A4) /* (TC2) Interrupt Enable Register */ -#define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) /* (TC2) Status Register */ +#define AT91C_TC2_CMR ((AT91_REG *) 0xFFFA0084) /* (TC2) Channel Mode Register (Capture Mode / Waveform Mode) */ +#define AT91C_TC2_CCR ((AT91_REG *) 0xFFFA0080) /* (TC2) Channel Control Register */ +#define AT91C_TC2_CV ((AT91_REG *) 0xFFFA0090) /* (TC2) Counter Value */ +#define AT91C_TC2_RA ((AT91_REG *) 0xFFFA0094) /* (TC2) Register A */ +#define AT91C_TC2_RB ((AT91_REG *) 0xFFFA0098) /* (TC2) Register B */ +#define AT91C_TC2_IDR ((AT91_REG *) 0xFFFA00A8) /* (TC2) Interrupt Disable Register */ +#define AT91C_TC2_IMR ((AT91_REG *) 0xFFFA00AC) /* (TC2) Interrupt Mask Register */ +#define AT91C_TC2_RC ((AT91_REG *) 0xFFFA009C) /* (TC2) Register C */ +#define AT91C_TC2_IER ((AT91_REG *) 0xFFFA00A4) /* (TC2) Interrupt Enable Register */ +#define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) /* (TC2) Status Register */ /* ========== Register definition for TCB peripheral ========== */ -#define AT91C_TCB_BMR ((AT91_REG *) 0xFFFA00C4) /* (TCB) TC Block Mode Register */ -#define AT91C_TCB_BCR ((AT91_REG *) 0xFFFA00C0) /* (TCB) TC Block Control Register */ +#define AT91C_TCB_BMR ((AT91_REG *) 0xFFFA00C4) /* (TCB) TC Block Mode Register */ +#define AT91C_TCB_BCR ((AT91_REG *) 0xFFFA00C0) /* (TCB) TC Block Control Register */ /* ========== Register definition for PWMC_CH3 peripheral ========== */ -#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 0xFFFCC270) /* (PWMC_CH3) Channel Update Register */ -#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 0xFFFCC274) /* (PWMC_CH3) Reserved */ -#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 0xFFFCC268) /* (PWMC_CH3) Channel Period Register */ -#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 0xFFFCC264) /* (PWMC_CH3) Channel Duty Cycle Register */ -#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 0xFFFCC26C) /* (PWMC_CH3) Channel Counter Register */ -#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 0xFFFCC260) /* (PWMC_CH3) Channel Mode Register */ +#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 0xFFFCC270) /* (PWMC_CH3) Channel Update Register */ +#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 0xFFFCC274) /* (PWMC_CH3) Reserved */ +#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 0xFFFCC268) /* (PWMC_CH3) Channel Period Register */ +#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 0xFFFCC264) /* (PWMC_CH3) Channel Duty Cycle Register */ +#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 0xFFFCC26C) /* (PWMC_CH3) Channel Counter Register */ +#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 0xFFFCC260) /* (PWMC_CH3) Channel Mode Register */ /* ========== Register definition for PWMC_CH2 peripheral ========== */ -#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 0xFFFCC254) /* (PWMC_CH2) Reserved */ -#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 0xFFFCC240) /* (PWMC_CH2) Channel Mode Register */ -#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 0xFFFCC24C) /* (PWMC_CH2) Channel Counter Register */ -#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 0xFFFCC248) /* (PWMC_CH2) Channel Period Register */ -#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 0xFFFCC250) /* (PWMC_CH2) Channel Update Register */ -#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 0xFFFCC244) /* (PWMC_CH2) Channel Duty Cycle Register */ +#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 0xFFFCC254) /* (PWMC_CH2) Reserved */ +#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 0xFFFCC240) /* (PWMC_CH2) Channel Mode Register */ +#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 0xFFFCC24C) /* (PWMC_CH2) Channel Counter Register */ +#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 0xFFFCC248) /* (PWMC_CH2) Channel Period Register */ +#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 0xFFFCC250) /* (PWMC_CH2) Channel Update Register */ +#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 0xFFFCC244) /* (PWMC_CH2) Channel Duty Cycle Register */ /* ========== Register definition for PWMC_CH1 peripheral ========== */ -#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 0xFFFCC234) /* (PWMC_CH1) Reserved */ -#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 0xFFFCC230) /* (PWMC_CH1) Channel Update Register */ -#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 0xFFFCC228) /* (PWMC_CH1) Channel Period Register */ -#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 0xFFFCC22C) /* (PWMC_CH1) Channel Counter Register */ -#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 0xFFFCC224) /* (PWMC_CH1) Channel Duty Cycle Register */ -#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 0xFFFCC220) /* (PWMC_CH1) Channel Mode Register */ +#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 0xFFFCC234) /* (PWMC_CH1) Reserved */ +#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 0xFFFCC230) /* (PWMC_CH1) Channel Update Register */ +#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 0xFFFCC228) /* (PWMC_CH1) Channel Period Register */ +#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 0xFFFCC22C) /* (PWMC_CH1) Channel Counter Register */ +#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 0xFFFCC224) /* (PWMC_CH1) Channel Duty Cycle Register */ +#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 0xFFFCC220) /* (PWMC_CH1) Channel Mode Register */ /* ========== Register definition for PWMC_CH0 peripheral ========== */ -#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 0xFFFCC214) /* (PWMC_CH0) Reserved */ -#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 0xFFFCC208) /* (PWMC_CH0) Channel Period Register */ -#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 0xFFFCC204) /* (PWMC_CH0) Channel Duty Cycle Register */ -#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 0xFFFCC200) /* (PWMC_CH0) Channel Mode Register */ -#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 0xFFFCC210) /* (PWMC_CH0) Channel Update Register */ -#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 0xFFFCC20C) /* (PWMC_CH0) Channel Counter Register */ +#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 0xFFFCC214) /* (PWMC_CH0) Reserved */ +#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 0xFFFCC208) /* (PWMC_CH0) Channel Period Register */ +#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 0xFFFCC204) /* (PWMC_CH0) Channel Duty Cycle Register */ +#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 0xFFFCC200) /* (PWMC_CH0) Channel Mode Register */ +#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 0xFFFCC210) /* (PWMC_CH0) Channel Update Register */ +#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 0xFFFCC20C) /* (PWMC_CH0) Channel Counter Register */ /* ========== Register definition for PWMC peripheral ========== */ -#define AT91C_PWMC_IDR ((AT91_REG *) 0xFFFCC014) /* (PWMC) PWMC Interrupt Disable Register */ -#define AT91C_PWMC_DIS ((AT91_REG *) 0xFFFCC008) /* (PWMC) PWMC Disable Register */ -#define AT91C_PWMC_IER ((AT91_REG *) 0xFFFCC010) /* (PWMC) PWMC Interrupt Enable Register */ -#define AT91C_PWMC_VR ((AT91_REG *) 0xFFFCC0FC) /* (PWMC) PWMC Version Register */ -#define AT91C_PWMC_ISR ((AT91_REG *) 0xFFFCC01C) /* (PWMC) PWMC Interrupt Status Register */ -#define AT91C_PWMC_SR ((AT91_REG *) 0xFFFCC00C) /* (PWMC) PWMC Status Register */ -#define AT91C_PWMC_IMR ((AT91_REG *) 0xFFFCC018) /* (PWMC) PWMC Interrupt Mask Register */ -#define AT91C_PWMC_MR ((AT91_REG *) 0xFFFCC000) /* (PWMC) PWMC Mode Register */ -#define AT91C_PWMC_ENA ((AT91_REG *) 0xFFFCC004) /* (PWMC) PWMC Enable Register */ +#define AT91C_PWMC_IDR ((AT91_REG *) 0xFFFCC014) /* (PWMC) PWMC Interrupt Disable Register */ +#define AT91C_PWMC_DIS ((AT91_REG *) 0xFFFCC008) /* (PWMC) PWMC Disable Register */ +#define AT91C_PWMC_IER ((AT91_REG *) 0xFFFCC010) /* (PWMC) PWMC Interrupt Enable Register */ +#define AT91C_PWMC_VR ((AT91_REG *) 0xFFFCC0FC) /* (PWMC) PWMC Version Register */ +#define AT91C_PWMC_ISR ((AT91_REG *) 0xFFFCC01C) /* (PWMC) PWMC Interrupt Status Register */ +#define AT91C_PWMC_SR ((AT91_REG *) 0xFFFCC00C) /* (PWMC) PWMC Status Register */ +#define AT91C_PWMC_IMR ((AT91_REG *) 0xFFFCC018) /* (PWMC) PWMC Interrupt Mask Register */ +#define AT91C_PWMC_MR ((AT91_REG *) 0xFFFCC000) /* (PWMC) PWMC Mode Register */ +#define AT91C_PWMC_ENA ((AT91_REG *) 0xFFFCC004) /* (PWMC) PWMC Enable Register */ /* ========== Register definition for UDP peripheral ========== */ -#define AT91C_UDP_IMR ((AT91_REG *) 0xFFFB0018) /* (UDP) Interrupt Mask Register */ -#define AT91C_UDP_FADDR ((AT91_REG *) 0xFFFB0008) /* (UDP) Function Address Register */ -#define AT91C_UDP_NUM ((AT91_REG *) 0xFFFB0000) /* (UDP) Frame Number Register */ -#define AT91C_UDP_FDR ((AT91_REG *) 0xFFFB0050) /* (UDP) Endpoint FIFO Data Register */ -#define AT91C_UDP_ISR ((AT91_REG *) 0xFFFB001C) /* (UDP) Interrupt Status Register */ -#define AT91C_UDP_CSR ((AT91_REG *) 0xFFFB0030) /* (UDP) Endpoint Control and Status Register */ -#define AT91C_UDP_IDR ((AT91_REG *) 0xFFFB0014) /* (UDP) Interrupt Disable Register */ -#define AT91C_UDP_ICR ((AT91_REG *) 0xFFFB0020) /* (UDP) Interrupt Clear Register */ -#define AT91C_UDP_RSTEP ((AT91_REG *) 0xFFFB0028) /* (UDP) Reset Endpoint Register */ -#define AT91C_UDP_TXVC ((AT91_REG *) 0xFFFB0074) /* (UDP) Transceiver Control Register */ -#define AT91C_UDP_GLBSTATE ((AT91_REG *) 0xFFFB0004) /* (UDP) Global State Register */ -#define AT91C_UDP_IER ((AT91_REG *) 0xFFFB0010) /* (UDP) Interrupt Enable Register */ +#define AT91C_UDP_IMR ((AT91_REG *) 0xFFFB0018) /* (UDP) Interrupt Mask Register */ +#define AT91C_UDP_FADDR ((AT91_REG *) 0xFFFB0008) /* (UDP) Function Address Register */ +#define AT91C_UDP_NUM ((AT91_REG *) 0xFFFB0000) /* (UDP) Frame Number Register */ +#define AT91C_UDP_FDR ((AT91_REG *) 0xFFFB0050) /* (UDP) Endpoint FIFO Data Register */ +#define AT91C_UDP_ISR ((AT91_REG *) 0xFFFB001C) /* (UDP) Interrupt Status Register */ +#define AT91C_UDP_CSR ((AT91_REG *) 0xFFFB0030) /* (UDP) Endpoint Control and Status Register */ +#define AT91C_UDP_IDR ((AT91_REG *) 0xFFFB0014) /* (UDP) Interrupt Disable Register */ +#define AT91C_UDP_ICR ((AT91_REG *) 0xFFFB0020) /* (UDP) Interrupt Clear Register */ +#define AT91C_UDP_RSTEP ((AT91_REG *) 0xFFFB0028) /* (UDP) Reset Endpoint Register */ +#define AT91C_UDP_TXVC ((AT91_REG *) 0xFFFB0074) /* (UDP) Transceiver Control Register */ +#define AT91C_UDP_GLBSTATE ((AT91_REG *) 0xFFFB0004) /* (UDP) Global State Register */ +#define AT91C_UDP_IER ((AT91_REG *) 0xFFFB0010) /* (UDP) Interrupt Enable Register */ /* ***************************************************************************** */ /* PIO DEFINITIONS FOR AT91SAM7S256 */ @@ -1897,47 +1897,47 @@ typedef struct _AT91S_UDP { /* ***************************************************************************** */ /* BASE ADDRESS DEFINITIONS FOR AT91SAM7S256 */ /* ***************************************************************************** */ -#define AT91C_BASE_SYS ((AT91PS_SYS) 0xFFFFF000) /* (SYS) Base Address */ -#define AT91C_BASE_AIC ((AT91PS_AIC) 0xFFFFF000) /* (AIC) Base Address */ -#define AT91C_BASE_PDC_DBGU ((AT91PS_PDC) 0xFFFFF300) /* (PDC_DBGU) Base Address */ -#define AT91C_BASE_DBGU ((AT91PS_DBGU) 0xFFFFF200) /* (DBGU) Base Address */ -#define AT91C_BASE_PIOA ((AT91PS_PIO) 0xFFFFF400) /* (PIOA) Base Address */ -#define AT91C_BASE_CKGR ((AT91PS_CKGR) 0xFFFFFC20) /* (CKGR) Base Address */ -#define AT91C_BASE_PMC ((AT91PS_PMC) 0xFFFFFC00) /* (PMC) Base Address */ -#define AT91C_BASE_RSTC ((AT91PS_RSTC) 0xFFFFFD00) /* (RSTC) Base Address */ -#define AT91C_BASE_RTTC ((AT91PS_RTTC) 0xFFFFFD20) /* (RTTC) Base Address */ -#define AT91C_BASE_PITC ((AT91PS_PITC) 0xFFFFFD30) /* (PITC) Base Address */ -#define AT91C_BASE_WDTC ((AT91PS_WDTC) 0xFFFFFD40) /* (WDTC) Base Address */ -#define AT91C_BASE_VREG ((AT91PS_VREG) 0xFFFFFD60) /* (VREG) Base Address */ -#define AT91C_BASE_MC ((AT91PS_MC) 0xFFFFFF00) /* (MC) Base Address */ -#define AT91C_BASE_PDC_SPI ((AT91PS_PDC) 0xFFFE0100) /* (PDC_SPI) Base Address */ -#define AT91C_BASE_SPI ((AT91PS_SPI) 0xFFFE0000) /* (SPI) Base Address */ -#define AT91C_BASE_PDC_ADC ((AT91PS_PDC) 0xFFFD8100) /* (PDC_ADC) Base Address */ -#define AT91C_BASE_ADC ((AT91PS_ADC) 0xFFFD8000) /* (ADC) Base Address */ -#define AT91C_BASE_PDC_SSC ((AT91PS_PDC) 0xFFFD4100) /* (PDC_SSC) Base Address */ -#define AT91C_BASE_SSC ((AT91PS_SSC) 0xFFFD4000) /* (SSC) Base Address */ -#define AT91C_BASE_PDC_US1 ((AT91PS_PDC) 0xFFFC4100) /* (PDC_US1) Base Address */ -#define AT91C_BASE_US1 ((AT91PS_USART) 0xFFFC4000) /* (US1) Base Address */ -#define AT91C_BASE_PDC_US0 ((AT91PS_PDC) 0xFFFC0100) /* (PDC_US0) Base Address */ -#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) /* (US0) Base Address */ -#define AT91C_BASE_TWI ((AT91PS_TWI) 0xFFFB8000) /* (TWI) Base Address */ -#define AT91C_BASE_TC0 ((AT91PS_TC) 0xFFFA0000) /* (TC0) Base Address */ -#define AT91C_BASE_TC1 ((AT91PS_TC) 0xFFFA0040) /* (TC1) Base Address */ -#define AT91C_BASE_TC2 ((AT91PS_TC) 0xFFFA0080) /* (TC2) Base Address */ -#define AT91C_BASE_TCB ((AT91PS_TCB) 0xFFFA0000) /* (TCB) Base Address */ -#define AT91C_BASE_PWMC_CH3 ((AT91PS_PWMC_CH) 0xFFFCC260) /* (PWMC_CH3) Base Address */ -#define AT91C_BASE_PWMC_CH2 ((AT91PS_PWMC_CH) 0xFFFCC240) /* (PWMC_CH2) Base Address */ -#define AT91C_BASE_PWMC_CH1 ((AT91PS_PWMC_CH) 0xFFFCC220) /* (PWMC_CH1) Base Address */ -#define AT91C_BASE_PWMC_CH0 ((AT91PS_PWMC_CH) 0xFFFCC200) /* (PWMC_CH0) Base Address */ -#define AT91C_BASE_PWMC ((AT91PS_PWMC) 0xFFFCC000) /* (PWMC) Base Address */ -#define AT91C_BASE_UDP ((AT91PS_UDP) 0xFFFB0000) /* (UDP) Base Address */ +#define AT91C_BASE_SYS ((AT91PS_SYS) 0xFFFFF000) /* (SYS) Base Address */ +#define AT91C_BASE_AIC ((AT91PS_AIC) 0xFFFFF000) /* (AIC) Base Address */ +#define AT91C_BASE_PDC_DBGU ((AT91PS_PDC) 0xFFFFF300) /* (PDC_DBGU) Base Address */ +#define AT91C_BASE_DBGU ((AT91PS_DBGU) 0xFFFFF200) /* (DBGU) Base Address */ +#define AT91C_BASE_PIOA ((AT91PS_PIO) 0xFFFFF400) /* (PIOA) Base Address */ +#define AT91C_BASE_CKGR ((AT91PS_CKGR) 0xFFFFFC20) /* (CKGR) Base Address */ +#define AT91C_BASE_PMC ((AT91PS_PMC) 0xFFFFFC00) /* (PMC) Base Address */ +#define AT91C_BASE_RSTC ((AT91PS_RSTC) 0xFFFFFD00) /* (RSTC) Base Address */ +#define AT91C_BASE_RTTC ((AT91PS_RTTC) 0xFFFFFD20) /* (RTTC) Base Address */ +#define AT91C_BASE_PITC ((AT91PS_PITC) 0xFFFFFD30) /* (PITC) Base Address */ +#define AT91C_BASE_WDTC ((AT91PS_WDTC) 0xFFFFFD40) /* (WDTC) Base Address */ +#define AT91C_BASE_VREG ((AT91PS_VREG) 0xFFFFFD60) /* (VREG) Base Address */ +#define AT91C_BASE_MC ((AT91PS_MC) 0xFFFFFF00) /* (MC) Base Address */ +#define AT91C_BASE_PDC_SPI ((AT91PS_PDC) 0xFFFE0100) /* (PDC_SPI) Base Address */ +#define AT91C_BASE_SPI ((AT91PS_SPI) 0xFFFE0000) /* (SPI) Base Address */ +#define AT91C_BASE_PDC_ADC ((AT91PS_PDC) 0xFFFD8100) /* (PDC_ADC) Base Address */ +#define AT91C_BASE_ADC ((AT91PS_ADC) 0xFFFD8000) /* (ADC) Base Address */ +#define AT91C_BASE_PDC_SSC ((AT91PS_PDC) 0xFFFD4100) /* (PDC_SSC) Base Address */ +#define AT91C_BASE_SSC ((AT91PS_SSC) 0xFFFD4000) /* (SSC) Base Address */ +#define AT91C_BASE_PDC_US1 ((AT91PS_PDC) 0xFFFC4100) /* (PDC_US1) Base Address */ +#define AT91C_BASE_US1 ((AT91PS_USART) 0xFFFC4000) /* (US1) Base Address */ +#define AT91C_BASE_PDC_US0 ((AT91PS_PDC) 0xFFFC0100) /* (PDC_US0) Base Address */ +#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) /* (US0) Base Address */ +#define AT91C_BASE_TWI ((AT91PS_TWI) 0xFFFB8000) /* (TWI) Base Address */ +#define AT91C_BASE_TC0 ((AT91PS_TC) 0xFFFA0000) /* (TC0) Base Address */ +#define AT91C_BASE_TC1 ((AT91PS_TC) 0xFFFA0040) /* (TC1) Base Address */ +#define AT91C_BASE_TC2 ((AT91PS_TC) 0xFFFA0080) /* (TC2) Base Address */ +#define AT91C_BASE_TCB ((AT91PS_TCB) 0xFFFA0000) /* (TCB) Base Address */ +#define AT91C_BASE_PWMC_CH3 ((AT91PS_PWMC_CH) 0xFFFCC260) /* (PWMC_CH3) Base Address */ +#define AT91C_BASE_PWMC_CH2 ((AT91PS_PWMC_CH) 0xFFFCC240) /* (PWMC_CH2) Base Address */ +#define AT91C_BASE_PWMC_CH1 ((AT91PS_PWMC_CH) 0xFFFCC220) /* (PWMC_CH1) Base Address */ +#define AT91C_BASE_PWMC_CH0 ((AT91PS_PWMC_CH) 0xFFFCC200) /* (PWMC_CH0) Base Address */ +#define AT91C_BASE_PWMC ((AT91PS_PWMC) 0xFFFCC000) /* (PWMC) Base Address */ +#define AT91C_BASE_UDP ((AT91PS_UDP) 0xFFFB0000) /* (UDP) Base Address */ /* ***************************************************************************** */ /* MEMORY MAPPING DEFINITIONS FOR AT91SAM7S256 */ /* ***************************************************************************** */ -#define AT91C_ISRAM ((char *) 0x00200000) /* Internal SRAM base address */ -#define AT91C_ISRAM_SIZE ((unsigned int) 0x00010000) /* Internal SRAM size in byte (64 Kbyte) */ -#define AT91C_IFLASH ((char *) 0x00100000) /* Internal ROM base address */ -#define AT91C_IFLASH_SIZE ((unsigned int) 0x00040000) /* Internal ROM size in byte (256 Kbyte) */ +#define AT91C_ISRAM ((char *) 0x00200000) /* Internal SRAM base address */ +#define AT91C_ISRAM_SIZE ((unsigned int) 0x00010000) /* Internal SRAM size in byte (64 Kbyte) */ +#define AT91C_IFLASH ((char *) 0x00100000) /* Internal ROM base address */ +#define AT91C_IFLASH_SIZE ((unsigned int) 0x00040000) /* Internal ROM size in byte (256 Kbyte) */ #endif diff --git a/ports/at91sam7s/at91sam7s256.ld b/ports/at91sam7s/at91sam7s256.ld index e49a36b7..179f64ab 100644 --- a/ports/at91sam7s/at91sam7s256.ld +++ b/ports/at91sam7s/at91sam7s256.ld @@ -2,8 +2,8 @@ /* LINKER SCRIPT */ /* */ /* */ -/* The Linker Script defines how the code and data emitted by the GNU C compiler and assembler are */ -/* to be loaded into memory (code goes into FLASH, variables go into RAM). */ +/* The Linker Script defines how the code and data emitted by the GNU C compiler and assembler are */ +/* to be loaded into memory (code goes into FLASH, variables go into RAM). */ /* */ /* Any symbols defined in the Linker Script are automatically global and available to the rest of the */ /* program. */ @@ -11,7 +11,7 @@ /* To force the linker to use this LINKER SCRIPT, just add the -T AT91SAM7S256.LD */ /* directive to the linker flags in the makefile. For example, */ /* */ -/* LFLAGS = -Map main.map -nostartfiles -T AT91SAM7S256.LD */ +/* LFLAGS = -Map main.map -nostartfiles -T AT91SAM7S256.LD */ /* */ /* */ /* The order that the object files are listed in the makefile determines what .text section is */ @@ -19,10 +19,10 @@ /* */ /* For example: $(LD) $(LFLAGS) -o main.out crt.o main.o lowlevelinit.o */ /* */ -/* crt.o is first in the list of objects, so it will be placed at address 0x00000000 */ +/* crt.o is first in the list of objects, so it will be placed at address 0x00000000 */ /* */ /* */ -/* The top of the stack (_stack_end) is (last_byte_of_ram +1) - 4 */ +/* The top of the stack (_stack_end) is (last_byte_of_ram +1) - 4 */ /* */ /* Therefore: _stack_end = (0x00020FFFF + 1) - 4 = 0x00210000 - 4 = 0x0020FFFC */ /* Therefore: _stack_end = (0x000203FFF + 1) - 4 = 0x00204000 - 4 = 0x00203FFC */ @@ -57,7 +57,7 @@ /* . | SVC Stack 16 bytes | */ /* . | | */ /* . |---------------------------------|0x0020FECC */ -/* . | | */ +/* . | | */ /* . | stack area for user program | */ /* . | | */ /* . | | */ @@ -110,10 +110,10 @@ ENTRY(_vec_reset) /* specify the AT91SAM7S64 memory areas */ -MEMORY +MEMORY { - flash : ORIGIN = 0, LENGTH = 64K /* FLASH EPROM */ - ram : ORIGIN = 0x00200000, LENGTH = 16K /* static RAM area */ + flash : ORIGIN = 0, LENGTH = 64K /* FLASH EPROM */ + ram : ORIGIN = 0x00200000, LENGTH = 16K /* static RAM area */ } @@ -122,35 +122,34 @@ MEMORY _stack_end = 0x203FFC; /* now define the output sections */ -SECTIONS +SECTIONS { - . = 0; /* set location counter to address zero */ - - .text : /* collect all sections that should go into FLASH after startup */ - { - *(.text*) /* all .text sections (code) */ - *(.rodata) /* all .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* all .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* all .glue_7 sections (no idea what these are) */ - *(.glue_7t) /* all .glue_7t sections (no idea what these are) */ - _etext = .; /* define a global symbol _etext just after the last code byte */ - } >flash /* put all the above into FLASH */ + . = 0; /* set location counter to address zero */ - .data : /* collect all initialized .data sections that go into RAM */ - { - _data = .; /* create a global symbol marking the start of the .data section */ - *(.data*) /* all .data sections */ - _edata = .; /* define a global symbol marking the end of the .data section */ - } >ram AT >flash /* put all the above into RAM (but load the LMA initializer copy into FLASH) */ + .text : /* collect all sections that should go into FLASH after startup */ + { + *(.text*) /* all .text sections (code) */ + *(.rodata) /* all .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* all .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* all .glue_7 sections (no idea what these are) */ + *(.glue_7t) /* all .glue_7t sections (no idea what these are) */ + _etext = .; /* define a global symbol _etext just after the last code byte */ + } >flash /* put all the above into FLASH */ - .bss : /* collect all uninitialized .bss sections that go into RAM */ - { - _bss_start = .; /* define a global symbol marking the start of the .bss section */ - *(.bss*) /* all .bss sections */ - } >ram /* put all the above in RAM (it will be cleared in the startup code */ + .data : /* collect all initialized .data sections that go into RAM */ + { + _data = .; /* create a global symbol marking the start of the .data section */ + *(.data*) /* all .data sections */ + _edata = .; /* define a global symbol marking the end of the .data section */ + } >ram AT >flash /* put all the above into RAM (but load the LMA initializer copy into FLASH) */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - _bss_end = . ; /* define a global symbol marking the end of the .bss section */ + .bss : /* collect all uninitialized .bss sections that go into RAM */ + { + _bss_start = .; /* define a global symbol marking the start of the .bss section */ + *(.bss*) /* all .bss sections */ + } >ram /* put all the above in RAM (it will be cleared in the startup code */ + + . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ + _bss_end = . ; /* define a global symbol marking the end of the .bss section */ } - _end = .; /* define a global symbol marking the end of application RAM */ - + _end = .; /* define a global symbol marking the end of application RAM */ diff --git a/ports/at91sam7s/bacnet.ewp b/ports/at91sam7s/bacnet.ewp index 095d006a..ab1f4f9c 100644 --- a/ports/at91sam7s/bacnet.ewp +++ b/ports/at91sam7s/bacnet.ewp @@ -78,7 +78,7 @@